0

別のクラスのデリゲートであるカスタム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];
       }

       ...

   }
4

2 に答える 2

0

UIPanGestureRecognizer / UIPinchGestureRecognizerをUIScrollViewに追加し、デリゲートメソッドをリッスンします。

Regulating Gesture Recognition
– gestureRecognizerShouldBegin:
– gestureRecognizer:shouldReceiveTouch:
Controlling Simultaneous Gesture Recognition
– gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
于 2012-08-28T08:44:33.710 に答える
0

を使用[[NSRunLoop currentRunLoop] addTimer:timer forMode:UITrackingRunLoopMode];すると問題が解決します。ありがとう@Jens Kilian!

于 2012-08-28T08:52:05.543 に答える