iPhone - 创建一个触发的方法



我正在从头开始创建自定义控件。像UIScrollView一样,我必须有一个委托方法,当控件开始滑动时触发,类似于scrollViewDidScroll。

我想在触摸中放置一个调用移动检查每个移动更改,但我做了一些类似测试的事情,它非常昂贵并且使触摸移动缓慢。

第二种方法是创建一个 NSTimer 每 x 毫秒触发一个方法以查看控件是否在另一个位置,然后触发该方法,但我不确定,因为 if 会不断检查控件,即使控件不移动也会消耗 CPU。

最好的方法是什么?你们会怎么做?

谢谢。

也许计时器的方法是正确的,如果您计算反弹和减速,我建议您在触摸开始时启动计时器并在触摸结束时或触摸结束后 3-4 秒停止它

我真的认为你不应该重新发明轮子并从头开始编写自定义控件。子类 UIControl.它有3种方法

- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event
- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event
- (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event

您可以在其中执行检查并触发操作。

您可以使用 UIGestureControl 代替 touchesMoved: ,创建委托方法并将 didScroll: 方法传递给委托

最新更新