我的自定义UITableViewCell
内有UITextView
,UICollectionView
和UITableView
。它们之间有10个像素的空间。在某些情况下,我只有UITextView
,有时只有集合视图等。
当没有文本时 - 我必须将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];
}
只有当我多次向上和向下滚动时,约束才会起作用。
答案 0 :(得分:1)
尝试添加
[self setNeedsLayout];
后
[self setNeedsUpdateConstraints];
答案 1 :(得分:0)
我发现了这个问题。因为我的self.middleWrapperHasTags在重用时没有正确设置。