4

メイン ビューに 2 つのボタンがあるプログラムを作成しています。

1 つは show と呼ばれ、もう 1 つは hide と呼ばれ、

ユーザーがショーボタンを押すと、イメージビューが画面に追加されます

コード:

-(IBAction)show{
  UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 155, 155)];
  img.image = [UIImage imageNamed:@"icon.png"];
  [self.view addSubview:img];
}

ユーザーが非表示ボタンを押すと、追加されたばかりの画像(img)をアプリに非表示にさせたい

しかし...

私が使うとき

-(IBAction)add{
  [img removeFromSuperView];
}

Xcode は「img Undecleared」と言います

編集:オブジェクトをパブリックオブジェクト(@property)として定義すると言う人もいますが、問題はイメージビューが一度だけ追加されることです。しかし、ユーザーが表示ボタンを押すたびに新しいイメージビューを追加したかったのですが、

[[self subviews]objectAtIndex:xx]removeFromSuperview] メソッドを使用して問題を解決しました

4

4 に答える 4

7

画像ビューにa を設定するtagと、このタグで取得できます。

[img setTag:123];

...

[[self.view viewWithTag:123] removeFromSuperview];
于 2012-12-12T12:32:11.877 に答える
3

UIImageView次のようなファイル内のオブジェクトを作成し.hます..

UIImageView *img;

.mファイルメソッドでviewDidLoad:は、次のように追加するだけです..

- (void)viewDidLoad
{
    ///your another code
    img = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 155, 155)];
    img.image = [UIImage imageNamed:@"icon.png"];
    img.hidden = YES;
    [self.view addSubview:img];
}

表示ボタンを押すと画像が表示されます

-(IBAction)show{
    img.hidden = NO;
    [self.view bringSubviewToFront:img];
}

非表示の場合は、次のように非表示にします..

-(IBAction)add{
    img.hidden = YES;
}
于 2012-12-12T12:33:43.277 に答える
0

あなたのimgオブジェクトは、外側ではなくshowメソッドでのみ表示されます..それが理由です。外部で宣言すれば、問題は解決します。

于 2012-12-12T12:30:20.567 に答える
0

この UIImageView を UIViewController クラスのメンバーにします

于 2012-12-12T12:29:05.883 に答える