1

私はこのすばらしいチュートリアルに従い、最終的に 3 つの独立した行のスクロール可能なインターフェイスを実装することができました。

ただし、そのチュートリアルの鍵はメソッドの使用であるため、問題が残っています。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
{
    NSLog(@"in hitTest");
    if ([self pointInside:point withEvent:event]) {
        return _scrollView;
    }
    return nil;
}

スクロールビュー領域外でもスクロールを処理するため。実際、私の行は UIButtons で満たされ、それらの TouchUpInside イベントはヒット イベントと混同されました。このメソッドにこれらのイベントを認識させて拒否させ、正当なデリゲートに伝達させる方法はありますか?

4

1 に答える 1

2

おそらく-hitTest:withEvent:次のようにメソッドを実装する必要があります。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
  UIView *superView = [super hitTest:point withEvent:event];

  if (superView == self)
    return _scrollView;

  return superView; 
}

これにより、UIScrollView のサブビュー内での対話が可能になります。

于 2011-12-02T12:25:48.573 に答える