この質問によると、にはジェスチャがアタッチされているビューを参照するプロパティがありますUIGestureRecognizer
。view
私はこれを私のコードで次のように使用しました:
//Code for the 1st UIScrollView
UIImageView *bookCover = [[UIImageView alloc]initWithFrame:CGRectMake(50, 100, 145, 420)];
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]initWithTarget:self
action:@selector(downloadBookTapped:)];
[bookCover addGestureRecognizer:singleTap];
[bookCover release];
[singleTap release];
//Code for the second UIScrollView
UIImageView *fileCover = [[UIImageView alloc]initWithFrame:CGRectMake(50, 100, 145, 420)];
UITapGestureRecognizer *singleFileTap = [[UITapGestureRecognizer alloc]initWithTarget:self
action:@selector(downloadFileTapped:)];
[fileCover addGestureRecognizer:singleFileTap];
[fileCover release];
[singleFileTap release];
そして、ここで私はview
プロパティを使用します:
- (void)downloadBookTapped:(UITapGestureRecognizer *)sender
{
UIImageView *imgView = (UIImageView *)sender.view;
CGRect rect = [imgView frame];
UIImageView *images = [[UIImageView alloc]initWithFrame:rect];
//rest of code here...
}
- (void)downloadFileTapped:(UITapGestureRecognizer *)sender
{
UIImageView *imgView = (UIImageView *)sender.view;
CGRect rect = [imgView frame];
UIImageView *images = [[UIImageView alloc]initWithFrame:rect];
//rest of code here...
}
ここでの問題は、私が2冊持っていてscrollView
、各スクロールビューが複数の本を保持していることです。1scrollView
日に本を選択すると、images
正しく表示されます。しかし、2番目の本を選択するscrollView
と、images
が正しく表示されません。なぜこれが起こるのか誰かが説明できますか?ありがとう。
- -追加情報 - -
2つscrollViews
は同じ幅と高さを持っています。もちろん、違いは配置です。最初のscrollViewは(0、0)に配置され、2番目は(0、350)に配置されます。2つを「棚」として想像できます。最初の棚は一番上の棚で、2番目の棚は一番下の棚です。
問題を特定するために、2番目のscrollView内で本を選択したとします。すると、1番目のscrollViewで本を選択したかimages
のように表示されます。つまり、は2番目のscrollViewではなく1番目のscrollViewに表示されます。images