0

Ipadジェスチャレコグナイザーを使用してアプリケーションを実装しようとしています。私のアプリケーションでは、いくつかの小さなもの がUIViewあり、それぞれUIViewにサブビュー(UIButton)があります。私の必要性は、ボタンをクリックすると、super viewこのボタンのユーザーインタラクションオプションがになり YES、その他のビューuserinteractionオプションがNOになります。これを実装した後、スーパービューがサブビューを支配します(つまり、1つのビューのユーザーインタラクションオプションがNOになった場合、これはサブビューに影響します)上記の問題を回避するにはどうすればよいですか?

4

1 に答える 1

0

ストーリーボードまたはxibファイルに事前定義された数のビューとサブビューが設定されていると仮定すると、各ビューにプロパティを追加できます。次に、ジェスチャレコグナイザを使用して、ユーザーがビューをテープに記録したかどうかを判断します。設定したプロパティを使用して、適切なビュー対応プロパティをYESまたはNOに設定できます。

たとえば、IBActionを追加して、次のようなことを行うジェスチャレコグナイザーを検出します。

- (IBAction)tap:(UITapGestureRecognizer *)gesture
{
    CGPoint tapLocation = [gesture locationInView:self.aViewWhereYouMonitorGestures];
    for (UIView *view in self.aViewWhereYouMonitorGestures.subviews) {
        if (CGRectContainsPoint(view.frame, tapLocation)) {
            self.someView.enabled = YES; // or NO depending on what you want to do.
        }
    }
}
于 2012-02-24T06:42:45.530 に答える