【问题标题】:scrollView with UIImage respond touch带有 UIImage 的滚动视图响应触摸
【发布时间】:2013-10-01 01:02:33
【问题描述】:

我正在使用一个简单的代码将一些图像添加到我的UIScrollView。我还实现了另一个代码来检测每个图像上的触摸。

代码如下:

(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);
    }

}

以上代码,将边框颜色设置为青色,并在另一个UIImageView 中显示我来自UIScrollView 的小图像。

但我的问题是,当触摸一个图像时,我无法设置隐藏所有图像并将所有图像的边框颜色设置为白色的选项。

例如:如果我触摸第一张图像,那么代码将起作用,我的大 UIImageView 将显示触摸图像,来自UIScrollView 的触摸图像将获得青色作为边框,到目前为止一切顺利。

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

【问题讨论】:

  • 你有动态或静态图像?你的滚动视图中每次都有相同数量的图像?
  • 是的,每次都是相同数量的图像。静态图片。
  • 好的,我有一个简单的解决方案

标签: ios objective-c uiscrollview


【解决方案1】:

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

没有更多信息,您不会重置旧颜色。将所选图像的引用保留为类变量,或者假设您的图像视图位于像 NSArray 这样的集合对象中,通过迭代对象并将其视图重置为未选中状态来开始您的方法。

如果您只需要拼凑出一个解决方案,那么第二个选项应该可以工作。我真的推荐使用 UICollectionView。一开始需要做更多的工作,特别是如果您没有使用它的经验,但它非常值得学习。这是UICollectionView的一个很好的教程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    相关资源
    最近更新 更多