Apple iPhone 時計アプリでは、ユーザーが新しいアラームを追加すると、モーダル ビューがポップアップします。それに似たUIを作ろうとしています。
現在、UINavigationController のルート ビュー コントローラーとして UITableViewController を使用しています。
また、UINavigationController のサブビューとして UIDatePicker を追加しました。
[self.navigationController.view addSubview:mydatePicker];
ただし、UITableview (UITableViewController の行) には約 10 行以上あり、UIDatePicker を追加するとすぐにスクロールしてすべてのセルを表示できません。
UITableView のサイズは UIDatePicker を追加する前と同じサイズであるため、スクロールしてすべてのテーブル セルを表示できるようにするには、サイズを変更する必要があることに気付きました。
サイズを変更するためにいくつかのことを試しましたが、すべて役に立ちませんでした。以下のコードでは、新しい高さとして任意に 50 を選択しました。
まず、境界の高さを変更してみました:
CGRect bounds = [self.tableView bounds];
[self.tableView setBounds:CGRectMake(bounds.origin.x,
bounds.origin.y,
bounds.size.width,
50)];
次に、フレームの高さを変更しようとしました:
CGRect tvframe = [self.tableView frame];
[self.tableView setFrame:CGRectMake(tvframe.origin.x,
tvframe.origin.y,
tvframe.size.width,
50)];
次に、もう少しグーグルで調べた後、contentSizeの高さを変更してみました:
CGSize thesize = self.tableView.contentSize;
thesize.height = 50;
self.tableView.contentSize = thesize;
これらのどれも、UITableView のサイズに影響を与えるようには見えませんでした。スクロールしてすべてのセルを表示することはまだできませんでした。
後で上記と同じ方法をいくつか試しましたが、UITableView ではなく UINavigationController で試しました。これもあまり運がありませんでした。
最後の手段として、ストーリーボード エディターで UITableView のサイズを変更しようとしました。私もこれを理解できませんでした。
ご協力いただきありがとうございます。