我有一个自定义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 –