0

我在 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 是可以访问的,因为日志确实有效。

4

3 回答 3

0

如果你得到NSLog(@"%@",loadLoading.backgroundColor);工作。

那么这段代码[self.loadLoading removeFromSuperview];应该可以工作,否则会有一些奇怪的错误。

这是另一种方法:在将标签添加到父视图时将其添加到视图。

loadLoading = [[UIView alloc] initWithFrame:self.view.bounds];
[loadLoading setTag:7];

使用该标签将其从 parentView 中删除。

[[self.view viewWithTag:7] removeFromSuperView];
于 2012-11-04T10:26:19.820 回答
0

发现问题。

我没有在我的问题中提供足够的细节。我从通知中心调用这个方法,它在不同的线程上加载。所以我必须先做performSelectorOnMainThread哪个有效

于 2012-11-09T01:39:57.810 回答
-1

尝试:

[self.loadLoading removeFromSuperview];
于 2012-11-04T02:59:07.990 回答