0

この質問によると、にはジェスチャがアタッチされているビューを参照するプロパティがありますUIGestureRecognizerview私はこれを私のコードで次のように使用しました:

//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

4

2 に答える 2

1

なぜなら、gestureRecognizerは2番目ではなく最初のUIImageViewにバインドされているからです。

[bookCover addGestureRecognizer:singleTap];

他のUIImageViewに対してこれを行うと、必要な結果が得られます。

于 2012-08-09T06:02:38.907 に答える
0

私は今、私が間違っていたことを知っています!imagesscrollViews のサブビューとしてを追加する代わりに、次のようにしました。

[self.view addSubView:images];

そのため、トップ側に表示され続けます。次のようになります。

[scrollBook addSubview:images];
[scrollFile addSubView:files];
于 2012-08-09T06:30:28.140 に答える