メソッドsystemLayoutSizeFittingSize:UILayoutFittingCompressedSize
を使用して自動高さ計算を使用してUITableViewCellを作成するだけでした。私の見解がUILabelsとUIImageViewsを持つまでは、すべてがうまくいった。ラベルの1つをUIButtonに置き換える必要があるとき、このメソッドはサイズを正しく計算しませんでした。AutoLayoutのsystemLayoutSizeFittingSizeはUILabelsでのみ動作しますか?
UILabels以外のUIElementsにいくつかの情報を追加する必要がありますか?
最終的には、TapGesturesをUILabelsに追加して機能させる必要がありました。ここで
がセル図である:
時間「午前9時00分AM」と場所がここにあるラベル方法が適切に結果を与えた場合、これらは、ボタンだったかもしれません。
アイデアはシンプルで、できるだけ小さな画面サイズ(iPhone 3.5インチ)のセルxibを作成します。クラスにxibインスタンスを個別に作成し、そのインスタンス(時間、場所など)に情報を提供し、systemLayoutSizeFittingSize:UILayoutFittingCompressedSizeメソッドを実行してサイズを計算します。
_scheduleCell = [[[UINib nibWithNibName:@"HomeScheduleViewCell" bundle:nil] instantiateWithOwner:nil options:nil] objectAtIndex:0];
CGSize fullSize = [_scheduleCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
ありがとうございました。しかし、 'systemLayoutSizeFittingSize:UILayoutFittingCompressedSize'にはUIButtonとUILabelsだけが含まれていると書かれています。なぜなら、コード/時間の量は両方のアプローチで同じであるからです。破損していない連鎖は、両者で同じです。 – Nil
いいえ、 'systemLayoutSizeFittingSize:UILayoutFittingCompressedSize'のような文書にはUIButtonは含まれていません!!あなたは制約を与えるときにいくつかの間違いをしなければならないと思う – Lion