我似乎无法删除视图子视图的子视图。 它是这样的:
[self.view addSubview:myView];
[myView addSubview:overlay];
我的.h:
@interface
UIView *myView;
IBOutlet Overlay *overlay;
...
}
@property (strong, nonatomic) UIView *myView;
@property (strong, nonatomic) IBOutlet Overlay *overlay;
...
.m:
-(void) method {
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(420.0f,0.0f,604.0f,768.0f)];
[self.view addSubview:myView];
Overlay *o = [[Overlay alloc] initWithFrame:CGRectMake(000.0f,000.0f,604.0f,768.0f)];
[myView addSubview:o];
}
我在[myView removeFromSuperview]
内尝试了[myView removeFromSuperview]
和void method
,但它确实有效。
我需要的是让它在外面或在另一个void
之外工作,但我正在做的事情不起作用。
注意:
它说我分配myView "Local declaration of 'myView' hides instance variable."
答案 0 :(得分:2)
将UIView *myView = (init code)
替换为self.myView = (init code)
。您将myView
重新声明为已在您的类中具有范围的局部变量,因为您将其作为属性。 (同样适用于Overlay
。)
然后,您可以在此课程的任何位置使用[self.myView removeFromSuperview]
。