UITableViewCell
にUITextView
,UICollectionView
およびUITableView
というカスタムがあります。それらの間には10ピクセルのスペースがあります。場合によってはUITextView
、時にはコレクションビューなどしかない場合があります。UITableViewCell制約が更新されない
テキストがない場合 - UICollectionビューを10ピクセル上に移動する必要があります。テキストがない場合、tableViewとcollectionViewは高さがゼロでなければなりません。
- (void)configureMiddleWrapperState
{
self.middleWrapperHasNote = self.noteTextView.text.length > 0;
self.noteTextViewTopConstraint.constant = self.middleWrapperHasNote ? 7.f : 0.f;
self.staffWrapperTopConstraint.constant = self.middleWrapperHasStaff ? 7.f : 0.f;
self.tagsWrapperTopConstraint.constant = self.middleWrapperHasTags ? 7.f : 0.f;
BOOL middleWrapperHasAtleastOne = self.middleWrapperHasNote || self.middleWrapperHasStaff ||
self.middleWrapperHasTags;
self.middleWrapperLastTenPixelSpaceConstraint.constant = middleWrapperHasAtleastOne ? 7.f : 0.f;
[self setNeedsUpdateConstraints];
}
- (void)layoutSubviews
{
[super layoutSubviews];
[self setExcludedPaths];
[self configureMiddleWrapperState];
}
結果は好きではないと予想される。 代わりの1行。 テキストのみが期待どおりの場合。
制約は、何度も上下にスクロールすると作業になります。
それはループします - setNeedsLayout力[自己layoutSubviews] –
だから私はあなたがsomewere他のあなたのロジックを移動することがあると思います。たぶん - (void)awakeFromNibは適合します。 (NSStringの*)をnewText:(空)configureWithText - awakeFromNibで – Moonkid
私はコーズは、それが次に、テキストでのセルを設定し、制約を更新する新しいメソッドを作成awakeFromNib –