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 に答える