0

我有 3 个 UIImageView 作为带有标签的缩略图:1、2、3。

以下方法:

- (IBAction)showImage:(UIGestureRecognizer *)sender
{
  if (sender.view.layer.borderColor != [UIColor redColor].CGColor)
    {
      sender.view.layer.borderColor = [UIColor redColor].CGColor;
      UIImageView *showFullImage = (UIImageView *)[self.view viewWithTag:sender+10];
      [self.view addSubview:showFullImage];
      showFullImage setTag:sender+20;
      showFullImage.hidden = NO;
    }
  else
    {
      sender.view.layer.borderColor = [UIColor whiteColor].CGColor;
      UIImageView *hideFullImage = (UIImageView *)[self.view viewWithTag:sender+20];
      [hideFullImage removeFromSuperView];
      hideFullImage.hidden = YES;
    }

因此,如您所见,我有 3 个UIImageView带有白色边框颜色的小缩略图。此外,我还创建了另外 3 张全尺寸、相同帧和以下标签的图像并将其添加到 superView:11、12、13 也隐藏了这些图像。

现在,我使用上面的代码来实现这个想法:

当我触摸这 3 个缩略图中的一个时,borderColor 将变为红色,并且隐藏的具有 tag = thumbnail.tag + 10 的全尺寸图像将可见。如果我再次按下相同的缩略图图像,现在有红色边框颜色,全尺寸图像将被隐藏,边框将为白色。

该代码有效,但我的问题是:我只能显示和隐藏每个全尺寸图像两次。

想法是缩略图应该像 UIButton 一样工作,具有按下和正常状态。

我不想使用 UIButtons。

谢谢

4

2 回答 2

1

听起来你忘了重置你的图像试试这个:

UIImageView *hideFullImage = (UIImageView *)[self.view viewWithTag:sender+20];
[hideFullImage removeFromSuperView];
[hideFullImage setTag:sender+10];
hideFullImage.hidden = YES;
于 2013-09-09T05:12:07.027 回答
1

如果我理解正确,你不能在下面写。

[self.view addSubview:showFullImage];

[hideFullImage removeFromSuperView];

您还可以在隐藏后重置标签。

[hideFullImage setTag:sender+10];

在调用 showImage 之前添加视图和隐藏。

于 2013-09-09T05:14:05.497 回答