无法删除子视图

时间:2012-05-26 13:32:04

标签: iphone ios xcode

我似乎无法删除视图子视图的子视图。 它是这样的:

[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."

1 个答案:

答案 0 :(得分:2)

UIView *myView = (init code)替换为self.myView = (init code)。您将myView重新声明为已在您的类中具有范围的局部变量,因为您将其作为属性。 (同样适用于Overlay。)

然后,您可以在此课程的任何位置使用[self.myView removeFromSuperview]