首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加快UISnapBehavior的速度?

如何加快UISnapBehavior的速度?
EN

Stack Overflow用户
提问于 2014-02-07 10:05:52
回答 1查看 2.9K关注 0票数 3

通过添加一个具有阻力的,我可以轻松地使抓取的慢一些。但是,阻力的默认值是0.0,对我来说还是太慢了。将阻力设置为负值没有任何影响,它的移动速度似乎高达0.0。

我怎样才能使UISnapBehavior更快?

(下面是一个使快照慢一点的示例):

代码语言:javascript
复制
UIDynamicItemBehavior *dynamicItemBehavior = [[UIDynamicItemBehavior alloc] initWithItems:@[button]];
dynamicItemBehavior.resistance = 50.0; // This makes the snapping SLOWER
UISnapBehavior *snapBehavior = [[UISnapBehavior alloc] initWithItem:button snapToPoint:point];
[self.animator addBehavior:button.dynamicItemBehavior];
[self.animator addBehavior:button.snapBehavior];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-03 07:11:30

您还可以使用UIAttachmentBehavior实现与UISnapBehavior类似的影响,并对速度进行更大的控制。例如:

代码语言:javascript
复制
UIAttachmentBehavior *attachment = [[UIAttachmentBehavior alloc] initWithItem:viewToAnimate attachedToAnchor:viewToAnimate.center];
[self.animator addBehavior:attachment];
attachment.frequency = 20.0;
attachment.damping = 1.0;
attachment.anchorPoint = newPoint;

通过将frequency增加到高于1.0的值,将使其更快。通过将frequency降到0.01.0之间的值,会使其变慢(或者通过向UIDynamicItemBehavior中添加大于1.0resistance值)。

如果在使用此frequency值时,发现它在最终位置振荡,也会对项目添加一些阻力:

代码语言:javascript
复制
UIDynamicItemBehavior *resistance = [[UIDynamicItemBehavior alloc] initWithItems:@[viewToAnimate]];
resistance.resistance = 100.0;
[self.animator addBehavior:resistance];
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21624728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档