多くの静的セルを持つテーブルビュー コントローラーがあります。1 つのフィールドをクリックすると、UIPicker を表示して値を選択したいと考えています。
私のテーブルは大きいので、スクロール可能です。
tableviewController にサブビューを追加して、この UIPicker を iPad 画面の下部に表示するにはどうすればよいですか。つまり、tableview の下部ではありません。
ありがとうございました。
多くの静的セルを持つテーブルビュー コントローラーがあります。1 つのフィールドをクリックすると、UIPicker を表示して値を選択したいと考えています。
私のテーブルは大きいので、スクロール可能です。
tableviewController にサブビューを追加して、この UIPicker を iPad 画面の下部に表示するにはどうすればよいですか。つまり、tableview の下部ではありません。
ありがとうございました。
(viewDidDisplay ではなく) viewDidAppear から CGRect を取得する必要があります。そこに self.bounds (コードが表示されないときに UITableViewController クラスが難しい場合) は、可視領域のみを返します。次に、そこにピッカーを描画できます。
編集(コメントリクエスト用):コードの例を使用します。viewController (任意の tableView、View ... ) には、次の 2 つのメソッドがあります。
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%f,%f",self.view.bounds.size.width,self.view.bounds.size.height);
}
-(void)viewWillAppear:(BOOL)animated
{
NSLog(@"%f,%f",self.view.bounds.size.width,self.view.bounds.size.height);
}
上記で行っているのは、同じコードを両方のメソッドに貼り付けることです。私が受け取ったもの: ViewDidLoad から: 320.000000,460.000000 viewDidAppear から: 320.000000,416.000000
これは、上部にナビゲーションバーがあるためです。したがって、画面に何かがある場合は、CGRect で好きなように描画する必要があります (パーセント値など)。