我在uiviewcontroller的头文件中声明了一个uiview,如下所示:
@property (strong, nonatomic) UIView *loadLoading;
并在viewdidload中启动它:
loadLoading = [[UIView alloc] initWithFrame:self.view.bounds];
loadLoading.backgroundColor = [UIColor blueColor];
[self.view addSubView:loadLoading];
这很好用。但在我的程序的另一点,我想删除此子视图。但出于某种原因,它并没有被删除。
NSLog(@"%@",loadLoading.backgroundColor);
[loadLoading removeFromSuperview];
(我知道它到达那一点并且loadLoading是可访问的,因为日志确实有效。
答案 0 :(得分:0)
如果你得到NSLog(@"%@",loadLoading.backgroundColor);
工作。
然后这段代码[self.loadLoading removeFromSuperview];
应该有用,否则会有一些奇怪的错误。
这是另一种方法: 将视图添加到parentView时,将视图添加到视图中。
loadLoading = [[UIView alloc] initWithFrame:self.view.bounds];
[loadLoading setTag:7];
使用该标记将其从parentView中删除。
[[self.view viewWithTag:7] removeFromSuperView];
答案 1 :(得分:0)
发现了这个问题。
我没有在我的问题中提供足够的细节。我从notificationcenter调用此方法,该方法在不同的线程上加载。所以我必须首先做performSelectorOnMainThread
工作
答案 2 :(得分:-1)
尝试:
[self.loadLoading removeFromSuperview];