4

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

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];

ビューのさまざまなアルファ プロパティを設定しようとすることに加えて、透明なセクションが不要になるようにビューの高さを変更しようとしました。問題は、ビューが画面の途中に配置されることです。

4

2 に答える 2

3

解決策は、UIViewControllerを使用せず、代わりに単純なカスタムUIViewがうまく機能するようです。

awakeFromNibメソッドでHaentzのカラーセットアップを使用しました。

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

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

于 2009-05-04T10:57:26.637 に答える
2

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

self.view.backgroundColor = [UIColor clearColor];

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

于 2009-05-03T16:54:52.153 に答える