2017-08-06 7 views
0

プレビューデバイスをスクリーン幅が10のiPhone 7に設定すると、スクリーン幅が414ポイントのiPhone 6 plusでアプリケーションを実行しています375ポイント、テーブルが最初にロードされるとき、私はviewdidloadのテーブルのサイズをプリントアウトし、414の幅を持っていましたが、テーブルのセルはすべて375の幅を持ちました。 414.複数のUITableViewControllerでテストしたところ、すべて同じ結果が得られました。テーブルビューのセルサイズは、ストーリーボードのプレビューデバイスのサイズによって異なります

私の質問は以下のとおりです。

なぜプレビューデバイスのサイズに依存テーブルビューセルのサイズは?

最初に読み込まれたセルのサイズを正しく設定するにはどうすればよいですか?

tableView.layoutIfNeeded()、tableView.layoutSubViews()は機能しません。

答えて

1

テーブルビューが正しいサイズ414(私のデバイスサイズ)を持っていますが、何らかの形で、セルサイズは、研究の数ヶ月後に、これは私が思いついた答えシミュレートされたメトリックのサイズです。で

私のセルクラス、awakeFromNib()をオーバーライドし、frame.size.widthをUIScreen.main.bounds.widthに設定し、次にlayoutIfNeed()を呼び出します。

0

ストーリーボードからビューをロードするたびに、最初にストーリーボードで指定されたサイズのEXACTLYが表示され、ビュー階層に追加されるとそのフレームが調整されます(Autolayoutまたはカスタムコードによる調整) 。

したがって、ストーリーボードから最初にセルが読み込まれると、414ポイントの幅になります(tableViewの幅はビューコントローラーと同じであると仮定します)。実際にビュー階層に配置すると、それに応じてサイズが変更されます(375pt、これはあなたのテーブルビューの幅に等しい)。

関連する問題