私はいくつかの 'サブビュー'を含むUIView( 'コンテナビュー')を持っています。私はUITapGestureRecognizerをコンテナビューに追加して、コンテナビュー内のリージョンをタッチしたときにアクティブになるようにしたいが、サブビューの外側に追加したい。現時点でUIGestureRecognizerからサブビューを除外する
、サブビューがジェスチャ認識を活性化させる内を含む、コンテナビュー内の任意の場所に触れます。コントローラでは :
実装は次のようになります
ContainerView *containerView = [[ContainerView alloc] initWithSubViews:array];
UITapGestureRecognizer *tap = [UITapGestureRecognizer alloc] initWithTarget:self action:@selector(someSelector)];
[containerView addGestureRecognizer:tap];
[self.view addSubView:containerView];
ContainerView.m
-(id)initWithSubviews:(NSArray *)array {
for (subView *s in array) {
[self addSubView:s];
}
return self;
}
で私はサブビューがされた後、ジェスチャ認識装置が追加されるため、問題が発生したと思います。それが本当であれば、ソリューションはinitWithSubViewsメソッドを2つの独立したメソッドに分割する必要があります。あなたがContainerViewためUITapGestureRecognizer
を追加した場合、それはContainerView各地で応答しなければならない
はあなたに
多くのサブビューを確認する必要がある場合、これは高価で毛深いものです。 – CodaFi
ええ。私は..私は他の良い解決策を見ていない..もしあなたが共有することを自由に感じる:) :) –