首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新UISnapBehavior点

更新UISnapBehavior点
EN

Stack Overflow用户
提问于 2014-07-02 06:33:49
回答 2查看 327关注 0票数 0

在我的应用程序中,我有一些小视图,可以通过拖动它们来移动。当用户开始在其中一个小视图上拖动时,它会留在原地,但会“拉伸”一定的距离(约200点)。在超过距离后,小视图应该对用户的手指执行“捕捉”效果。整个动画最好的描述是橡皮筋断裂。

到目前为止,我已经实现了快照效果,如下所示:

代码语言:javascript
复制
UISnapBehavior *snapBehavior = [[UISnapBehavior alloc] initWithItem:iconView snapToPoint:[[touches anyObject] locationInView:self.view]];
[self.snapAnimator addBehavior:snapBehavior];

问题是,如果用户在执行快照动画时继续移动手指,视图将继续向开始效果时手指所在的位置移动。

当触摸被移动时,有没有办法更新UISnapBehavior的目标?

EN

回答 2

Stack Overflow用户

发布于 2014-07-02 06:50:03

不,没有。捕捉行为非常简单:它只会捕捉到你告诉它的点,就在那时。这就是它所做的一切。一个行为,一个点,一个项目,一个捕捉。

因此,您需要删除捕捉行为,并用不同的点替换不同的捕捉行为。或者使用一种不同的行为,可以在用户手指移动时移动目标点(例如UIAttachmentBehavior)。

票数 1
EN

Stack Overflow用户

发布于 2016-09-29 17:27:28

在iOS 9和更高版本中,您可以这样做。现在有:

代码语言:javascript
复制
@property (nonatomic, assign) CGPoint snapPoint NS_AVAILABLE_IOS(9_0);

它的工作方式与预期一致。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24520238

复制
相关文章

相似问题

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