我有一個自定義UITableViewCell
與UITextView
,UICollectionView
和UITableView
裏面。他們之間有10 px的空間。在某些情況下,我只有UITextView
,有時只有收集視圖等UITableViewCell限制未更新
當沒有文字 - 我必須將UICollection視圖向上移動10 px。如果我沒有文本,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];
}
結果不喜歡預期: ,而不是一條線。 只有文本看起來像預期的那樣。
僅當我多次上下滾動時,約束條件纔有效。
它會循環 - setNeedsLayout力量[自我layoutSubviews] –
所以我認爲你必須移動你的邏輯somewere其他。也許 - (void)awakeFromNib會適合。 – Moonkid
在awakeFromNib我不知道如何提供筆記文本等因爲它沒有設置在awakeFromNib –