1

これは非常に単純に思えるかもしれませんが、私はまだ始めたばかりなので、ご容赦ください...

ツールバー付きのメイン ビューがあります。ユーザーがツールバーのボタンを押すと、画面の上部に小さなプロンプトが表示されるようにします。既存の UIView 内に UIView を追加し、非表示に設定しました。それをView Controllerの「searchView」というivarに接続し、次のことを試しました:

searchView.hidden = NO;

それがうまくいかなかったとき、私は追加しようとしました...

[self.view addSubview:self.searchView];

...どちらも機能しませんでした。

メイン ビューの上に表示するために何らかの方法でインデックスを設定する必要がありますか?

このアプローチは完全に間違っていますか?

4

1 に答える 1

1

インターフェイスビルダーからUIViewを作成した場合は、addSubviewの使用を忘れてください。これは、インターフェイスビルダーが自動的に行うためです。

グラフィカルモード(IB)でこれを行うには、次の手順に従います。

ファイルにIBOutletを定義します。「h」は次のようになります。

IBOutlet UIView * myHiddenView;

次に、IBで、hファイルで定義したIBOutletをIBでグラフィカルに作成したUIViewに接続し、このUIViewに非表示のプロパティを指定します(チェックボックス)。

次に、ボタンを押す方法でこれを行います。

myHiddenView.hidden = NO;

プログラムでこのサンプルコードをコピーしたい場合は、次のようにします。

.hファイルのインターフェースで定義する

UIView *myHiddenView;

.hファイルのインターフェイスの後:

-(void)displayView:(id)sender;

次に、.mファイルで:

-(void)viewDidLoad{
    myHiddenView = [[UIView alloc] initWithFrame: CGRectMake (x, y, width, height)];
    myHiddenView.hidden = YES;
    [self.view addSubview: myHiddenView]

    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, y, width, height)];
    [button setTitle:@"button" forState:(UIControlState)normal];
    [button addTarget: self action: @selector(displayView:) forControlEvents: UIControlEventTouchUpInside];
    [self.view addSubview:button];
}

-(void)displayView:(id)sender{
    myHiddenView.hidden = NO;
}
于 2011-02-17T08:14:26.510 に答える