私のランドスケープ、iPadアプリには、バーボタンアイテムからのポップオーバーとして表示されるテーブルビューコントローラーがあります。
ポップオーバーをテーブル ビューのサイズに合わせるには、テーブル ビュー コントローラーのコードで次のようにします。
override func viewDidLoad()
{
super.viewDidLoad()
tableView.estimatedRowHeight = 44.0
tableView.rowHeight = UITableViewAutomaticDimension
tableView.scrollEnabled = false
}
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
tableView.reloadData()
preferredContentSize = tableView.contentSize
}
これは、ポップオーバーの高さをテーブル ビューの高さに調整する場合にうまく機能します (行数と各行の高さを考慮して)。
ただし、セルの 1 つのラベルを長すぎる文字列に設定すると...
、ポップオーバー (およびテーブル ビュー) がさらに水平方向に拡大するための十分なスペースが画面上にあるにもかかわらず、切り捨てられます ( )。
次のように、十分な幅をハードコーディングできます。
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
tableView.reloadData()
var size = tableView.contentSize
size.width = 600
preferredContentSize = size
}
...しかし、より動的でエレガントなソリューションを好むでしょう (たとえば、すべてのセルのコンテンツに収まる最小幅)。