0

サンプル画像

はじめに: ここに表示されるメトリクス テーブル全体は、メトリクス ビュー コントローラー内のビューです。以下の緑色のテーブルはほぼ同じです (ご覧のとおり、正しく表示されていません)。赤い領域と緑の領域は、実際にはビュー コントローラーのビューの単なるコンテナー UIView です。

問題: プロジェクトに autolayout を使用する必要があります。これらのテーブルのサイズは動的 (垂直方向) です。手動で高さを制限するのではなく、autolayout が UIViews の高さを (intrinsicContentSize を使用して) 自動的に決定できる必要があることを理解しています。この例のテーブルの実際の最適な高さは 192 です。ただし、sizeThatFits を呼び出すと、viewcontroller のビューで 405 が返されます。more ボタンをテスト メソッドに接続した後、viewcontroller のビューのサブビューで sizeThatFits を呼び出すと、合計 192 が適切に返されることがわかりました。サブビューの sizeThatFits ですよね..?

残念ながら、この sizeThatFits メソッドは、ビューが画面に完全にロードされた後にのみ機能するようです (これは、「詳細」ボタンのテスト メソッドを使用したときに機能する理由を説明しています)。ビューの読み込み時に sizeThatFits を自動的に手動で決定しようとすると、すべてのビューに対して 0 が返されます。ビューの読み込み順序などに関しては、よくわからない問題があるようです。この方法はどの時点で実際に機能しますか?

4

0 に答える 0