У меня есть обычай UITableViewCell
с UITextView
, UICollectionView
и UITableView
внутри. Расстояние между ними составляет 10 px. В некоторых случаях у меня есть только UITextView
, иногда только просмотр коллекции и т. Д.UITableViewCell Constraints не обновляется
Когда нет текста - мне нужно переместить UICollection view up на 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 force [self layoutSubviews] –
Итак, я думаю, что вам нужно переместить свою логику где-то еще. Может быть - (void) awakeFromNib подойдет. – Moonkid
В awakeFromNib Я не знаю, как подавать текст заметки и т. Д. Coz Он не установлен в awakeFromNib –