【发布时间】:2012-01-28 06:29:06
【问题描述】:
我正在开发我的第一个 iOS 应用程序,并且遇到了第一个问题,但我无法找到一个好的答案。
问题:我有一个自定义的UIGestureRecognizer 并已正确连接,我可以在识别后为@selector 中的每个触摸运行代码。这对大多数事情来说都很好,但对于其他人来说,这有点太多了。
我的目标:制作一个在指定时间间隔触发以运行逻辑的计时器,并能够在触摸被取消时取消它。
我在这里问的原因:解决方案有很多可能性,但没有一个是最适合实施的。目前看来
-
performSelector(以及一些变体) NSThreadNSTimerNSDate- 操作队列
- 我想我也找到了其他一些...
从所有研究来看,某种形式的线程似乎是可行的方法,但我不知道哪种方法最适合这种情况。
实现示例:每 0.10 秒取一次NSPoint,取上一点与当前点之间的距离。 [计算每个点之间的距离会产生非常混乱的结果]。
相关代码:
- (void)viewDidLoad {
CUIVerticalSwipeHold *vSwipe =
[[CUIVerticalSwipeHold alloc]
initWithTarget:self
action:@selector(touchHoldMove:)];
[self.view addGestureRecognizer:vSwipe];
[vSwipe requireGestureRecognizerToFail:doubleTap];
}
...
- (IBAction)touchHoldMove:(UIGestureRecognizer *)sender {
if (sender.state == UIGestureRecognizerStateEnded) {
}
if (sender.state == UIGestureRecognizerStateBegan) {
}
//other stuff to do goes here
}
【问题讨论】:
标签: objective-c ios nsdate nstimer nsthread