[英]Deleting an image from the UI
我正在开发一个行为类似于照片库的应用程序,并且我正在实施让用户从他们的画廊中删除照片的选项。 为此,我决定在每张图片上放置一个不可见的按钮。 当用户点击“编辑”按钮时,每张图片上的隐藏删除按钮将变为活动状态。 为简单起见,我在每个隐藏按钮上使用相同的 IBOutlet,并且我在 Interface Builder 中适当地标记了每个按钮。 当用户点击图片上的按钮时,会出现一个警告视图,询问他们是否真的要删除它。 如果他们单击“是”,我将调用 removeObjectAtIndex。 这是我正在使用的代码:
- (IBAction)deleteButtonPressed:(id)sender {
NSLog(@"Sender is %@", sender);
UIAlertView *deleteAlertView = [[UIAlertView alloc] initWithTitle:@"Delete"
message:@"Are you sure you want to delete this photo?"
delegate:self
cancelButtonTitle:@"No"
otherButtonTitles:@"Yes", nil];
[deleteAlertView show];
int imageIndex = ((UIButton *)sender).tag;
deleteAlertView.tag = imageIndex;
}
- (void)alertView: (UIAlertView *) alertView
clickedButtonAtIndex: (NSInteger) buttonIndex
{
if (buttonIndex != [alertView cancelButtonIndex]) {
NSLog(@"User Clicked Yes. Deleting index %d of %d", alertView.tag, [array count]);
[self.array removeObjectAtIndex: alertView.tag];
NSLog(@"After deleting item, array count = %d", [array count]);
alertView.tag.image = nil;
}
[self.user setObject:self.array forKey:@"images"];
}
这里的问题是alertView.tag.image
。 我有一个错误,指出“成员引用基类型 NSInteger(又名 int)不是结构或联合。此代码可以很好地从数组中删除图像,但我仍然需要从 UI 中删除图像。我想那个alertView.tag.image
本来可以解决问题的。我不知道该怎么做,我对 Objective-C 还是个新手,我读的书根本没有涵盖这些内容。我也想知道如何刷新删除图像后的用户界面?
您正在尝试访问不存在的属性:
alertView.tag.image = nil;
您的alertView
是一个UIAlertView
- tag
是一个 integer 属性,它代表您分配给视图的 int 值(假设您已经这样做了)。 tag
只是一个普通的旧 int - 它是一个原语。
相反,您需要做的是获取标签值并在保存图像的超级视图上调用viewWithTag
:这将为您提供对图像视图的引用,然后您可以根据需要将其removeFromSuperview
。
标签只是 NSInteger。 它没有称为图像的属性。 你应该使用,
((UIImageView *)[self.view viewWithTag:alertView.tag]).image =nil;
你如何将图像添加到用户界面? 将 UIImageView 中的图像设置为另一个图像或将其从视图中删除。
您不能在.tag
之后添加.image
。 Tag 是一个 integer 实例字段,用于表示另一个视图(以及其他内容)。 标签本身除了它的值之外没有任何属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.