2013-10-01 146 views
0

我正在使用一个简单的代码来添加一些图像到我的UIScrollView。此外,我已经实现了另一个代码来检测每个图像上的触摸。scrollView与UIImage响应触摸

下面是代码:

(void)handleSingleTap:(UIGestureRecognizer *)sender 
{ 

    int senderTagIs; 

    senderTagIs = sender.view.tag; 

    if (sender.view.layer.borderColor != [UIColor cyanColor].CGColor) { 

     sender.view.layer.borderColor = [UIColor cyanColor].CGColor; 

     UIImageView *showFullImage = (UIImageView *)[self.view viewWithTag:sender.view.tag+100]; 
     [showFullImage setTag:sender.view.tag+200]; 
     [self.view addSubview:showFullImage]; 
     showFullImage.hidden = NO; 

     NSLog(@"Show tag is: %i", sender.view.tag); 

    } 
    else 
    { 
     sender.view.layer.borderColor = [UIColor whiteColor].CGColor; 

     UIImageView *hideFullImage = (UIImageView *)[self.view viewWithTag:sender.view.tag+200]; 
     [hideFullImage setTag:sender.view.tag+100]; 
     hideFullImage.hidden = YES; 

     NSLog(@"Hide tag is: %i", sender.view.tag); 
    } 

} 

上面的代码,设置边框颜色为青色和从UIScrollView显示我的小图像,在另一个UIImageView

但我的问题是,我无法设置选项来隐藏所有图像,并为所有图像设置边框颜色白色,当一个图像被触摸。例如:如果我触摸第一个图像,那么代码将工作,我的大UIImageView将显示感动的图像,并且从UIScrollView触摸的图像将获得边框的青色,到目前为止这么好。

现在,如果我触摸第三个图像,我的第一个图像显示,颜色边框是青色,所以...我必须再次触摸第一个图像禁用,但这不是我想要的。

+0

你有动态或静态图像?你每次都有相同数量的图像在你的scrollView? –

+0

是的,每次都有相同数量的图像。静态图像。 – user2805816

+0

好吧,我有一个简单的解决方案 –

回答

0

所以,我们在这里做了一些事情。首先,我假设你正试图在滚动视图中显示一些图像集合,并使用一些自定义填充来指示围绕它们的选择。这听起来适合使用UICollectionView和自定义单元格。

如果缺少进一步的信息,您不会重置旧的颜色。既可以将对选定图像的引用保留为类变量,或者假设图像视图位于像NSArray这样的集合对象中,通过迭代对象并将其视图重置为未选中状态来开始您的方法。

如果你只需要解决一个解决方案,第二个选项应该工作。我真的推荐使用UICollectionView。在开始的时候它会做更多的工作,特别是如果你没有经验,但是这非常值得学习。这里有一个关于UICollectionView的好教程。