Objective-C - 是否可以拖动项目并将其锁定在某个位置?

时间:2012-08-13 14:31:14

标签: drag-and-drop position

如何拖动图像或按钮,然后当图像位于特定位置时,即(x = 240 y = 240)它会留在那里?

1 个答案:

答案 0 :(得分:0)

我会假设iOS,因为我比使用OS X更熟悉它。

要使视图可拖动,请使用以下三种方法检测触摸拖动:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;

诀窍是你应该将触摸的位置存储在视图的超视图中,然后在第二种方法中,相应地更新视图本身的位置。当您检测到视图的中心或原点到达某个点时(不要使用==进行检查,它对浮点数不起作用,请使用一些小的epsilon来检测视图是否在所需的 area ),你可以在视图上设置一个布尔标志,然后在touchesMoved方法中检查那个布尔标志,不再更新视图的位置。