问题标签 [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.
ios7 - 减慢 UISnapBehavior
我正在使用 UISnapBehavior,但我喜欢它的捕捉速度太快了。有没有办法让它慢下来?或者换句话说:有没有办法调整对象的弹性与它应该捕捉到的点?
ios - UIDynamicBehavior 是否只移动整个视图,还是会影响 contentOffset?
我很难理解UIDynamicBehaviors
。
我正在尝试将 a 添加UISnapBehavior
到 a UIScrollView
,并且众所周知,UIScrollViews
行为方式是在用户与其交互时更改contentOffset
它,但是当我添加 时UISnapBehavior
,整个UIScrollView
画面都会飞出。
我不会粘贴任何代码,因为我希望我误解了一些基本的东西,所以:
我怎样才能让 aUIDynamicBehavior/UISnapBehavior
只影响contentOffset
a UIScrollView
?
ios - 仅在 x 轴上的 UISnapBehaviour
有没有办法让 UISnapBevahiour 只能沿着线性 x 轴工作?
我想要 UISnapBehaviour 的确切行为,但不希望它在 x 和 y 轴上“摇晃”到位,只是在 x 轴上。
这是用于表格单元格的 contentView 内的 UIView。
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所示的五个没有动画的按钮。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
编辑。以下代码行重新定义了origin
以CGRect
圆的圆周为中心。它们替换了上面定义origin
为 的左上顶点的行 CGRect
。动画现在根据图 A 所示的布局放置 UIButton。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
然后在动画开始之前将五个 UIButtons 放置在中心,我通过添加将每个 UIButton 与框架中心对齐
然后更改每个按钮帧(如下)以设置动画的起点
然后我UISnapBehaviour
通过在之后立即插入指针来添加到动画中viewDidLoad
并在生成图 C 所示布局 之前添加UIDynamicAnimator
和方法UISnapBehavior
[super viewDidLoad];
UIButton
[_animator4 addBehavior:_snap4];
}
最后我添加了五种方法来确保所有按钮都能正常工作
ios - 如何在 NSObject 类中添加动态行为:Swift
我正在尝试使用 swift 在 NSObject 类中使用 UIDynamicAnimator 创建具有动态行为的自定义警报视图,而将 UISnapBehaviour 添加到 NSObject 类初始化方法中的视图捕捉行为不起作用,例如查看下面的代码
“TestView”作为子视图添加到“Target”,但捕捉行为不起作用。
我在 ObjectiveC 中尝试了相同的代码
它工作正常,“TestView”捕捉到 TargetView 的中心。我不知道 swift 代码有什么问题。
这是我尝试过的:
- 在 UIViewController 类中编码时动态效果工作正常,问题仅在 swift 中子类化 NSObject 时存在。
- 我已经尝试过其他动态行为,例如 UIGravityBehavior,同样的问题也存在于 swift 中。
- 在 ObjectiveC 对象类中完成了相同的示例工作,它工作正常,我也附上了工作的 ObjC 代码。
似乎问题可能存在于 init 方法或变量 decleration 不确定但是,我不知道如何解决该问题。我已经阅读了互联网上的许多文章。我也搜索过 StackOverflow。请帮忙。
ios - UIScrollview 可以实现 UIAnimator 的 UISnapBehavior 吗?
我想弄清楚是否可以在 UIScrollview 中使用 UIAnimator 中的 UISnapBehavior 来使滚动视图的内容对齐到一个点。到目前为止,我的发现导致这是不可能的。
我正在努力实现的目标
UIScrollView 在用户拖动滚动视图时“捕捉”到某个点。然而,滚动必须从捕捉位置恢复,而用户不必抬起触摸。
Apple 似乎在其 iOS 照片应用程序的照片编辑中实现了这一点。(见下面的截图)
我试过的
我试图通过将 UIPanGestureRecognizer 附加到滚动视图并使用它的速度来获得这种行为。如果用户向捕捉点拖动,滚动视图将禁用滚动,动画到捕捉点,完成动画后它将重新启用滚动。
但是,这会导致用户在拖动后必须抬起触摸并重新拖动滚动视图的问题。然而,苹果似乎已经做到了,而不必解除阻力。
autolayout - UISnapBehavior 动画故障
当使用 UISnapBehavior 将视图重置到屏幕中心时,我得到了预期的反弹效果。但是在滚动作为被捕捉视图的子视图的 UIScrollView 之后,UISnapBehavior 阻尼似乎有不同的基本计算。
我的快照行为是这样创建的:
在与作为识别器视图的子视图的滚动视图交互之前,snapBehavior 表现出非常夸张的反弹效果(这是所需和预期的行为),但在与滚动视图交互之后,然后再次触发 snapBehavior 效果更快(阻尼更少)尽管使用完全相同的阻尼常数。
我认为这与一些自动布局错误有关,因为滚动视图是使用自动布局定位的,并且它的内容大小是由自动布局约束动态计算的。
有趣的是,移除滚动视图会导致动态动画再次正确衰减。
c# - Xamarin.Forms - 捕捉行为
几年前,我在 Xamarin.iOS 中创建了一个类,它只是一个捕捉到屏幕边缘的 UIView。
此类包含Xamarin.Forms中不可用的UISnapBehavior对象。因为我想将此移植到 Xamarin.Forms,是否有简单的解决方法或与UISnapBehavior类似的类?