问题标签 [uisnapbehavior]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2199 浏览

ios7 - 减慢 UISnapBehavior

我正在使用 UISnapBehavior,但我喜欢它的捕捉速度太快了。有没有办法让它慢下来?或者换句话说:有没有办法调整对象的弹性与它应该捕捉到的点?

0 投票
0 回答
164 浏览

ios - UIDynamicBehavior 是否只移动整个视图,还是会影响 contentOffset?

我很难理解UIDynamicBehaviors

我正在尝试将 a 添加UISnapBehavior到 a UIScrollView,并且众所周知,UIScrollViews行为方式是在用户与其交互时更改contentOffset它,但是当我添加 时UISnapBehavior,整个UIScrollView画面都会飞出。

我不会粘贴任何代码,因为我希望我误解了一些基本的东西,所以:

我怎样才能让 aUIDynamicBehavior/UISnapBehavior只影响contentOffseta UIScrollView

0 投票
2 回答
1006 浏览

ios - 仅在 x 轴上的 UISnapBehaviour

有没有办法让 UISnapBevahiour 只能沿着线性 x 轴工作?

我想要 UISnapBehaviour 的确切行为,但不希望它在 x 和 y 轴上“摇晃”到位,只是在 x 轴上。

这是用于表格单元格的 contentView 内的 UIView。

0 投票
1 回答
97 浏览

ios - 除了 snapToPoint 之外的东西正在控制 UISnapBehavior 中的布局

我是动画新手,很难理解为什么 UIAnimation 和 UISnapBehavior 似乎会使 UIButtons 偏离中心。显然,除了我的代码之外,还有一些控制布局的东西。也许有人可以告诉我我错过了什么。

最初我的 ViewController 有五个 UIButtons 以编程方式(即没有 XIB 文件)放置在圆的圆周上,如图 A 所示。在修改我的应用程序时,我引入了快照动画以将 UIButtons 从中心点移动到位置。图 B 显示了动画开始的中心点。图 C 显示了在动画结束后被替换的五个 UIButtons,即使snapToPoint:用于放置 UIButtons 的 CGPoints 与用于放置 UIButtons 的 CGPoints 完全相同。

在此处输入图像描述

当我单击屏幕底部的黑色矩形区域时,我注意到记录的报告中有一条消息,unexpected nil window in _UIApplicationHandleEventFromQueueEvent其中包括框架的大小属性。这表明帧或边界可能是 UIButton 在动画后偏离中心的原因。

这是我用来演示发生了什么的代码的最新版本。我相信它是正确的,即使它不会在面向对象的选美比赛中赢得任何奖项 :-)

首先,如图A所示的五个没有动画的按钮。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~

编辑。以下代码行重新定义了originCGRect圆的圆周为中心。它们替换了上面定义origin为 的左上顶点的行 CGRect。动画现在根据图 A 所示的布局放置 UIButton。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~

然后在动画开始之前将五个 UIButtons 放置在中心,我通过添加将每个 UIButton 与框架中心对齐

然后更改每个按钮帧(如下)以设置动画的起点

然后我UISnapBehaviour通过在之后立即插入指针来添加到动画中viewDidLoad

并在生成图 C 所示布局 之前添加UIDynamicAnimator和方法UISnapBehavior[super viewDidLoad];UIButton

[_animator4 addBehavior:_snap4];

}

最后我添加了五种方法来确保所有按钮都能正常工作

0 投票
1 回答
694 浏览

ios - 如何在 NSObject 类中添加动态行为:Swift

我正在尝试使用 swift 在 NSObject 类中使用 UIDynamicAnimator 创建具有动态行为的自定义警报视图,而将 UISnapBehaviour 添加到 NSObject 类初始化方法中的视图捕捉行为不起作用,例如查看下面的代码

“TestView”作为子视图添加到“Target”,但捕捉行为不起作用。

我在 ObjectiveC 中尝试了相同的代码

它工作正常,“TestView”捕捉到 TargetView 的中心。我不知道 swift 代码有什么问题。

这是我尝试过的:

  1. 在 UIViewController 类中编码时动态效果工作正常,问题仅在 swift 中子类化 NSObject 时存在。
  2. 我已经尝试过其他动态行为,例如 UIGravityBehavior,同样的问题也存在于 swift 中。
  3. 在 ObjectiveC 对象类中完成了相同的示例工作,它工作正常,我也附上了工作的 ObjC 代码。

似乎问题可能存在于 init 方法或变量 decleration 不确定但是,我不知道如何解决该问题。我已经阅读了互联网上的许多文章。我也搜索过 StackOverflow。请帮忙。

0 投票
2 回答
711 浏览

ios - UIScrollview 可以实现 UIAnimator 的 UISnapBehavior 吗?

我想弄清楚是否可以在 UIScrollview 中使用 UIAnimator 中的 UISnapBehavior 来使滚动视图的内容对齐到一个点。到目前为止,我的发现导致这是不可能的。

我正在努力实现的目标

UIScrollView 在用户拖动滚动视图时“捕捉”到某个点。然而,滚动必须从捕捉位置恢复,而用户不必抬起触摸。

Apple 似乎在其 iOS 照片应用程序的照片编辑中实现了这一点。(见下面的截图)

在此处输入图像描述

我试过的

我试图通过将 UIPanGestureRecognizer 附加到滚动视图并使用它的速度来获得这种行为。如果用户向捕捉点拖动,滚动视图将禁用滚动,动画到捕捉点,完成动画后它将重新启用滚动。

但是,这会导致用户在拖动后必须抬起触摸并重新拖动滚动视图的问题。然而,苹果似乎已经做到了,而不必解除阻力。

0 投票
0 回答
85 浏览

autolayout - UISnapBehavior 动画故障

当使用 UISnapBehavior 将视图重置到屏幕中心时,我得到了预期的反弹效果。但是在滚动作为被捕捉视图的子视图的 UIScrollView 之后,UISnapBehavior 阻尼似乎有不同的基本计算。

我的快照行为是这样创建的:

在与作为识别器视图的子视图的滚动视图交互之前,snapBehavior 表现出非常夸张的反弹效果(这是所需和预期的行为),但在与滚动视图交互之后,然后再次触发 snapBehavior 效果更快(阻尼更少)尽管使用完全相同的阻尼常数。

我认为这与一些自动布局错误有关,因为滚动视图是使用自动布局定位的,并且它的内容大小是由自动布局约束动态计算的。

有趣的是,移除滚动视图会导致动态动画再次正确衰减。

0 投票
1 回答
187 浏览

c# - Xamarin.Forms - 捕捉行为

几年前,我在 Xamarin.iOS 中创建了一个类,它只是一个捕捉到屏幕边缘的 UIView。

此类包含Xamarin.Forms中不可用的UISnapBehavior对象。因为我想将此移植到 Xamarin.Forms,是否有简单的解决方法或与UISnapBehavior类似的类?