質問

別のビューにあるフォーム上に表示するために、「完了」ボタンがすぐ上に配置されたピッカーコントローラーを作成しようとしています。

UIViewControllerのサブクラスを作成し、IBを使用して、ツールバーとピッカービューを追加しました。これはうまくいくようで、UICatalogの例をコピーすることで必要な値を表示し、選択などを聞くことができます。

代替テキストhttp://web.me.com/gareth.davis /so/settlement_picker_ui.png

上記では、ビューの背景色をアルファ0.0に設定しました。また、ビューのアルファを0.0に設定してみましたが、これは完全に透明なビューを表示するだけです。

代替テキストhttp://web.me.com/gareth.davis /so/picker_running_in_app.png

上記は、次を使用してフォームの上部に表示されるView Controllerです:

    [self presentModalViewController:settlementPickerViewController                         
                        animated:YES];

ビューのさまざまなアルファプロパティを設定しようとすることに加えて、透明なセクションを必要としないようにビューの高さを変更しようとしました。画面。

役に立ちましたか?

解決

ソリューションは、単純なカスタムUIViewがうまく機能する代わりにUIViewControllerを使用しないように思われます。

awakeFromNibメソッドでHaentzの色設定を使用しました:

- (void)awakeFromNib {
    picker.delegate = self;
    self.backgroundColor = [UIColor clearColor];    
}

これを実装する必要があることに注意してください。x-codeテンプレートが提供するinitWithFrameメソッドを使用しないでください。nib制御ビューはinitWithFrameを使用しないため(アップルのドキュメントから)。

他のヒント

おそらく私はそれを理解していませんが、ここで何が問題なのかを正確に理解していません。下のスクリーンショットでは、UI要素は透明で、上の白い領域はありませんか? UIViewControllerでUIViewのフレームを適切に設定する必要があり、背景色を透明に設定する必要があるかもしれません:

self.view.backgroundColor = [UIColor clearColor];

IBを使用することはないのでわかりませんが、ベースビューの背景色のアルファ値を0に設定できる場合があります。ビュー自体のアルファではなく、背景色のアルファ値を設定することができます。 。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top