我有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
小缩略图,带有whiteBorderColor。
此外,我创建并添加到superView另外3个图像全尺寸,相同的帧和以下标签:11,12,13也隐藏了这些图像。
现在,我使用上面的代码来实现这个想法:
当我触摸其中一个缩略图时,borderColor将为红色,而隐藏的全尺寸图像(tag = thumbnail.tag + 10)将是可见的。如果我再次按相同的缩略图图像,现在有红色borderColor,将隐藏全尺寸图像,边框将为白色。
代码有效,但我的问题是:我只能显示和隐藏每个全尺寸图像两次。
想法是,如果UIButton处于压力和正常状态,那么缩略图应该起作用。
我不想使用UIButtons。
由于
答案 0 :(得分:1)
听起来您忘了重置图片,请尝试以下操作:
UIImageView *hideFullImage = (UIImageView *)[self.view viewWithTag:sender+20];
[hideFullImage removeFromSuperView];
[hideFullImage setTag:sender+10];
hideFullImage.hidden = YES;
答案 1 :(得分:1)
如果我理解真的,你不能写下面的行。
[self.view addSubview:showFullImage];
和
[hideFullImage removeFromSuperView];
你也可以在隐藏后重置标签。
[hideFullImage setTag:sender+10];
在调用showImage之前添加视图并隐藏。