メインのUIViewConrollerの左側にあるコンテナビューがあります。このコンテナビューは、下部にいくつかのボタン、中央にユーザーデータを表示するUITableView、上部に選択したユーザーデータを表示する別のUITableViewで構成されています。このトップUITableViewの動作で、選択したデータがない場合は非表示になり、データがある場合は最大高さ200に達するようにします。選択された各データ項目は、テーブルのエントリに相当します。
写真をチェックしてください。それが実行されている写真では、「テスト」というタイトルの選択されたデータ項目を1つロードしました。
とにかく、私が抱えている問題は、InterfaceBuilderによって作成されたレイアウトの制約に関連しています。データテーブルと選択したデータテーブルのサイズを動的に変更するために行った手順は次のとおりです。
一番上のTableViewを<=200に設定し、真ん中のTableViewをデフォルトのままにして、次のコードを追加して一番上のテーブルのサイズを変更しました。
-(void)setSelectedFacets:(NSArray *)selectedFacets{
_selectedFacets = selectedFacets;
[self.selectedFacetsTableView reloadData];
CGRect frame = self.selectedFacetsTableView.frame;
frame.size.height = 10 ;//36 * selectedFacets.count;
self.selectedFacetsTableView.frame = frame;
[self.selectedFacetsTableView setNeedsDisplay];
[self.view setNeedsDisplay];
}
上記の切り取られたコードは(View Controllerが完全にロードされた後に)実行されますが、実際の高さには影響しません。
誰かがこれを使った経験はありますか?
NSLayoutConstraintsにIBOutletを追加して(それらへの参照を取得するために)、実行時にそれらを削除できることを私は知っています。これは、本来よりも多くの作業のようです。私は何かが足りないのですか?