gpt4 book ai didi

ios 如何删除自定义的某个 UIView

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:17:03 24 4
gpt4 key购买 nike

我有一个 alpha 为 0.5 的自定义 UIView。我想在出现另一个相同类型的 View 时删除第一个 View ,那么我该怎么做呢?

到目前为止我已经写了这个,我一直得到“不可见”的日志:

MyCustomView *myTranslation = [[MyCustomView alloc]initWithFrame:CGRectMake(0, 330, 320, 150)];

if (myTranslation.tag == 2)
{
NSLog (@"is shown yes");
[[myTranslation viewWithTag:2] removeFromSuperview];

}

else
{
NSLog(@"not visible");
myTranslation.tag = 2;

}

myTranslation.backgroundColor = [UIColor brownColor];

myTranslation.alpha = 0.5;

myTranslation.opaque = 0.5;

[self.view addSubview:myTranslation];
[myTranslation show];
[myTranslation release];

最佳答案

您没有得到预期的结果,因为无论如何您都在实例化一个新 View 。新 View 根本不会被标记(标记属性将设置为零),因此您会得到该结果。

您实际上想要做的是尝试使用 viewWithTag 从现有 viewController 的 View 中获取 View 实例,如下所示。然后你检查你是否真的有一个匹配的 View 。只有当您没有获得有效 View (myTranslation 等于 nil)时,您才应该实例化一个新 View 并适本地标记它。

MyCustomView *myTranslation = (MyCustomView *)[self.view viewWithTag:2];
if (myTranslation != nil)
{
NSLog (@"is shown yes");
[myTranslation removeFromSuperview];
}
else
{
myTranslation = [[MyCustomView alloc] initWithFrame:CGRectMake(0, 330, 320, 150)];
NSLog(@"not visible");
myTranslation.tag = 2;
}

...

关于ios 如何删除自定义的某个 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9366824/

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