Iphone 删除UIButton的子视图
当用户按下按钮时,我一遍又一遍地运行同一段代码。如果用户按下按钮,按钮上方会出现一个图像,如果再次按下按钮,图像将从按钮子视图中删除 这是我的密码:Iphone 删除UIButton的子视图,iphone,objective-c,ios,uibutton,Iphone,Objective C,Ios,Uibutton,当用户按下按钮时,我一遍又一遍地运行同一段代码。如果用户按下按钮,按钮上方会出现一个图像,如果再次按下按钮,图像将从按钮子视图中删除 这是我的密码: UIImageView *overlay = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"OverlayImage.png"]]; NSString *senderstag = [NSString stringWithFormat:@"%i", buttonFromSe
UIImageView *overlay = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"OverlayImage.png"]];
NSString *senderstag = [NSString stringWithFormat:@"%i", buttonFromSender.tag];
if([[dictonaryOfImagesToDelete allKeys] containsObject:senderstag]){
[[buttonFromSender subviews]makeObjectsPerformSelector:@selector(removeFromSuperview)];
}
else{
[buttonFromSender addSubview:overlay];
}
NSString *imageName = [[NSString alloc]init];
imageName = [arrayWithImageNames objectAtIndex:buttonFromSender.tag];
[imagesToDelete addObject:imageName];
[dictonaryOfImagesToDelete setObject:imagesToDelete forKey:[NSString stringWithFormat:@"%i", buttonFromSender.tag]];
我用字典来记录哪些按钮被按下了。与其移除按钮上的imageview,不如移除整个按钮。如何仅删除imageview而不删除按钮
谢谢:D如果您想为按钮状态显示不同的图像,您可以直接初始化按钮以加载处于该状态的图片。 例如,启用/禁用或选择/取消选择(正常) 参考资料: 背景图像: : 按钮图像:
:我最终制作了覆盖图的UIImageview,一个UIButton。这允许为其设置操作。以下是使用的代码:
UIImage *image = [UIImage imageNamed:@"OverlayImage.png"];
UIButton *overlay = [[UIButton alloc]init];
overlay.frame = CGRectMake(0, 0, 100, 150);
[overlay setImage:image forState:UIControlStateNormal];
[overlay addTarget:self action:@selector(removeSelectedImage:) forControlEvents:UIControlEventTouchUpInside];
overlay.tag = buttonFromSender.tag;
[buttonFromSender addSubview:overlay];
NSString *imageName = [[NSString alloc]init];
imageName = [arrayWithImageNames objectAtIndex:buttonFromSender.tag];
[imagesToDelete addObject:imageName];
[dictonaryOfImagesToDelete setObject:imageName forKey:[NSString stringWithFormat:@"%i", buttonFromSender.tag]];
这将设置新的UIButton
然后,为了摆脱UIButton,我做了以下操作:
-(IBAction)removeSelectedImage:(id)sender{
UIButton *button = (UIButton *)sender;
[button removeFromSuperview];
NSString *tag = [NSString stringWithFormat:@"%i", button.tag];
NSString *deleteWhat = [[NSString alloc]init];
deleteWhat = [dictonaryOfImagesToDelete objectForKey:tag];
[imagesToDelete removeObject:deleteWhat];
[dictonaryOfImagesToDelete removeObjectForKey:tag];
}
图像只是一个覆盖。你仍然可以看到它背后的大部分原始图像。它们是用户图像,所以我无法对它们进行photoshop
-(IBAction)removeSelectedImage:(id)sender{
UIButton *button = (UIButton *)sender;
[button removeFromSuperview];
NSString *tag = [NSString stringWithFormat:@"%i", button.tag];
NSString *deleteWhat = [[NSString alloc]init];
deleteWhat = [dictonaryOfImagesToDelete objectForKey:tag];
[imagesToDelete removeObject:deleteWhat];
[dictonaryOfImagesToDelete removeObjectForKey:tag];
}