1

私のランドスケープ、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 
}

...しかし、より動的でエレガントなソリューションを好むでしょう (たとえば、すべてのセルのコンテンツに収まる最小幅)。

4

1 に答える 1

0

これらを動的に処理するために使用します

DynamicView.autoresizingMask = UIViewAutoresizing.FlexibleTopMargin .union(UIViewAutoresizing.FlexibleLeftMargin .union(UIViewAutoresizing.FlexibleRightMargin))
于 2015-12-08T06:25:44.840 に答える