プログラムで UIDatePicker コントロールをビューに追加しています。標準的な方法で、DatePicker を画面の下部にドッキングして表示したい...
DatePicker のフレームを設定していますが、3.5 インチの iPhone と 4 インチの iPhone では画面サイズが異なることに注意する必要があります。
次のコードは目的の結果を生成していますが、いくつか質問があります...
// In ViewDidLoad
CGRect defaultFrame = CGRectMake(0,0,0,0);
_datePicker = [[UIDatePicker alloc] initWithFrame:defaultFrame];
CGRect bounds = [self.view bounds];
int datePickerHeight = _datePicker.bounds.size.height;
int navBarHeight = 44;
CGRect datePickerFrame = CGRectMake(0, bounds.size.height - (datePickerHeight + navBarHeight), 0, 0);
[_datePicker setFrame:datePickerFrame];
// In method responding to user tap
[self.view addSubview:_datePicker];
Q1. これを行うよりエレガントな方法はありますか?フレームでDatePickerを作成し、その高さを確認してからフレームを設定する以外の何か...
Q2. ビューは、UINavigationController 内にある UITableView です。self.view の境界を取得すると、サイズにはナビゲーションバーの 44 を含むビュー全体が含まれます。しかし、addSubview で DatePicker を追加すると、navBar のオフセットを含めないと、下から 44 ずれてしまいます...
[self.view bounds] が完全な境界を返すとき、addSubview が小さい境界内で動作するのはなぜですか?
乾杯、ギャビン