根据此question,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...
}
这里的问题是我有两个scrollView
,每个scrollview都有多本书。当我在第一个scrollView
选择一本书时,images
会正确显示。但是当我在第二个scrollView
内选择一本书时,images
显示不正确。谁能解释为什么会这样?感谢。
---附加信息---
两个scrollViews
具有相同的宽度和高度。当然,差异在于安置。第一个scrollView位于(0,0),而第二个位于(0,350)。您可以将两者视为“货架”,第一个是顶部货架,第二个是底部货架。
要指定问题,请说我在第二个scrollView中选择了一本书。然后images
将显示,就好像我在第一个scrollView中选择了一本书。意思是,images
显示在第一个scrollView而不是第二个scrollView。
答案 0 :(得分:1)
因为gestureRecognizer绑定到第一个UIImageView而不是第二个。
[bookCover addGestureRecognizer:singleTap];
为您的其他UIImageView执行此操作,您将获得所需的结果。
答案 1 :(得分:0)
我现在知道我做错了什么!我没有添加images
作为scrollViews的子视图,而是这样做:
[self.view addSubView:images];
这就是为什么它一直出现在顶端。它应该是这样的:
[scrollBook addSubview:images];
[scrollFile addSubView:files];