gpt4 book ai didi

xcode 从 View 中删除一些 subview

转载 作者:行者123 更新时间:2023-12-04 00:12:13 24 4
gpt4 key购买 nike

问候大家,

我是一个菜鸟,几天来我一直在努力解决这个问题。

我正在通过 UItouch 向 View 添加图像。该 View 包含在其上添加新图像的背景。如何清除我从 subview 添加的图像,而不删除作为背景的 UIImage。非常感谢任何帮助。提前致谢。

这是代码:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event { 
NSUInteger numTaps = [[touches anyObject] tapCount];

if (numTaps==2) {
imageCounter.text =@"two taps registered";

//__ remove images
UIView* subview;
while ((subview = [[self.view subviews] lastObject]) != nil)
[subview removeFromSuperview];

return;

}else {

UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self.view];
CGRect myImageRect = CGRectMake((touchPoint.x -40), (touchPoint.y -45), 80.0f, 90.0f);
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];

[myImage setImage:[UIImage imageNamed:@"pg6_dog_button.png"]];
myImage.opaque = YES; // explicitly opaque for performance


[self.view addSubview:myImage];
[myImage release];

[imagesArray addObject:myImage];

NSNumber *arrayCount =[self.view.subviews count];
viewArrayCount.text =[NSString stringWithFormat:@"%d",arrayCount];
imageCount=imageCount++;
imageCounter.text =[NSString stringWithFormat:@"%d",imageCount];

}

}

最佳答案

您需要的是一种区分添加的 UIImageView 的方法背景中的物体 UIImageView .我能想到两种方法来做到这一点。

方法一:赋值添加 UIImageView对象一个特殊的标签值

每个UIView对象有一个 tag属性,它只是一个整数值,可用于标识该 View 。您可以像这样将每个添加的 View 的标签值设置为 7:

myImage.tag = 7;

然后,要删除添加的 View ,您可以单步执行所有 subview ,只删除标签值为 7 的 View :
for (UIView *subview in [self.view subviews]) {
if (subview.tag == 7) {
[subview removeFromSuperview];
}
}

方法二:记住背景 View

另一种方法是保留对背景 View 的引用,以便您可以将其与添加的 View 区分开来。做一个 IBOutlet用于背景 UIImageView并在 Interface Builder 中以通常的方式分配它。然后,在删除 subview 之前,只需确保它不是背景 View 。
for (UIView *subview in [self.view subviews]) {
if (subview != self.backgroundImageView) {
[subview removeFromSuperview];
}
}

关于xcode 从 View 中删除一些 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4136733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com