0

我似乎无法实现删除视图子视图的子视图。就像这样:

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

4

1 回答 1

2

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

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

于 2012-05-26T13:33:36.387 回答