したがって、ループを繰り返して、UIView
sを含むUIImageView
sを作成します(特定の部分を選択的に表示できるようにするため)。これらUIView
はすべてに保存されますUIScrollView
。
ジェスチャレコグナイザーを、UIView
それらを作成したループのsに追加します。
プログラムを実行すると、最初に表示されたアイテムのみUIScrollView
がジェスチャを認識します。以前に非表示にしたアイテムまでスクロールしてタップしても、何も起こりません(ジェスチャが認識されたり、認識されたりすることはありません)。
初期化コード:
UITapGestureRecognizer* gestRec = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
gestRec.delegate = self;
[imageholder addGestureRecognizer:gestRec];
ジェスチャーを処理するコード:
- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer
{
float count = [self._imageHolders count];
NSLog(@"handling gesture: %f",count);
while(count--){
UIView* object = (UIView*) [self._imageHolders objectAtIndex:count];
// NSLog(@"Whats going on: %@, %@, %b",object,gestureRecognizer.view, object == gestureRecognizer.view);
if(object == gestureRecognizer.view){
object.alpha = .1;
count = 0;
}
// [object release];
}
}
何か案は?
- - アップデート :
で使用可能なさまざまな機能とジェスチャレコグナイザーを調べて、scrollview
何かUIView
がそのように切断された場合に備えて境界をいじってみました...興味深いことに、部分的にしか表示されていないアイテムが1つあり、それを移動した場合したがって、完全に表示され、元々表示されていた部分のみがジェスチャを認識します。
UIKit
この問題を理解するために、アーキテクチャ内でジェスチャレコグナイザがどのように機能するかについては十分にわかりません。ジェスチャを使用したスクロールビューのAppleの例では、この問題は発生していないようですが、実際の違いは見つかりません。ただし、自分UIImageViews
の中にネストしている場合を除きます。UIViews