問題は、3 つの部分を含むビューがあることです。
最初の部分は単純なヘッダーです - 常に同じ高さです! 2 番目の部分は簡単な説明行です。常に同じ高さです。
さて、問題は第三部です。これは、動的に計算されるサブビュー (それぞれにカスタム コントローラーがある) の viewContainer です。コンテンツの高さは、バックエンドからダウンロードされた一部のテキスト情報によって動的になります。そのため、テキスト全体を読むためにスクロールする必要がある場合もあれば、そうでない場合もあります。
現在、私はこのようにしています:
- 特定のテキストの UILabel のサイズを計算します。
- 次に、親ビューのサイズを変更して、UILabel に合わせます (小さい場合)。
- 次に、サブビューに合わせて3-Part-ViewController-Viewの scrollView のサイズを変更します。
動的コンテンツを含む詳細 viewController:
self.labelDescription.text = self.customData.descriptionText;
[self.labelDescription sizeToFit];
if(self.view.frame.size.height < (self.labelDescription.frame.size.height + self.labelDescription.frame.origin.y)) {
CGRect newSize = CGRectMake(0,
0,
self.view.frame.size.width,
self.labelDescription.frame.size.height +
self.labelDescription.frame.origin.y);
self.view.frame = newSize;
}
詳細ビューを追加してサイズ変更した後のスクロール ビューのサイズ変更:
[self addChildViewController:controllerCustomData];
[self.scrollView addSubview:controllerCustomData.view];
CGRect newRect = CGRectMake(0,
self.viewElementDetailContentContainer.frame.origin.y,
controllerCustomData.view.frame.size.width,
controllerCustomData.view.frame.size.height);
controllerCustomData.view.frame = newRect;
self.scrollView.contentSize = CGSizeMake(self.scrollView.contentSize.width, newRect.origin.y + newRect.size.height);
私の質問は、これを行う簡単な方法はありますか?