在平移/缩放时接收委托消息

时间:2012-08-28 08:17:32

标签: iphone objective-c cocoa-touch

我有一个自定义UIView,它是另一个类的委托,它不断向它发送消息(更新UILabel的文本)。此自定义视图还具有UIScrollView作为子视图。问题是,当我平移/捏合滚动视图时,没有收到任何代理消息(仅在交互完成后)。

我怎么能让它一直收到消息?


这是另一个类向其委托发送消息的方式:

   [NSTimer scheduledTimerWithTimeInterval:1.0
                                    target:self
                                  selector:@selector(onTick:)
                                  userInfo:nil
                                   repeats:YES];


   - (void)onTick:(NSTimer *)timer {
       NSString *label = ...

       if ([delegate respondsToSelector:@selector(updateLabelText:)]) {
           [delegate updateLabelText:label];
           [delegate updateLabelText:label];
       }

       ...

   }

2 个答案:

答案 0 :(得分:0)

将UIPanGestureRecognizer / UIPinchGestureRecognizer添加到您的UIScrollView并监听委托方法:

Regulating Gesture Recognition
– gestureRecognizerShouldBegin:
– gestureRecognizer:shouldReceiveTouch:
Controlling Simultaneous Gesture Recognition
– gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:

答案 1 :(得分:0)

使用[[NSRunLoop currentRunLoop] addTimer:timer forMode:UITrackingRunLoopMode];解决了这个问题。谢谢@Jens Kilian!