• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios如何删除某个定制的UIView

[复制链接]
菜鸟教程小白 发表于 2022-12-13 11:43:51 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个 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];



Best Answer-推荐答案


您没有得到您期望的结果,因为无论如何您都在实例化一个新 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap