Я создаю свой интерфейс полностью в коде и используя масонство, чтобы ограничить подзаголовки представления содержимого ячейки на соответствующую высоту. Я используюСодержимое ContentView UITableViewCell получает нежелательное ограничение «height == 44»
[cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height
на iOS 7 для высоты строки, в то время как iOS 8 обрабатывает его автоматически.
Все выглядит точно так, как должно быть на экране, но в консоли я получаю сообщения с предупреждениями о конфликтующих ограничениях, которые, по-видимому, вызваны непрозрачным и ненужным ограничением высоты в представлении содержимого ячейки (например, <NSLayoutConstraint UITableViewCellContentView.height == 44>
).
На iOS 8 Я устанавливаю вид стола rowHeight
как UITableViewAutomaticDimension
(фактически -1
), но все же я получаю это ограничение. Я только добавляю ограничения между представлением контента и его собственными подзонами, поэтому никаких ограничений между представлением контента и самой ячейкой.
Любая идея, из-за которой возникает это ограничение, и как заставить его уйти?
Edit: Теперь я действительно нашел «решение» сортов - первоначальной настройку кадра представления содержимого на что-то нелепое, как CGRectMake(0, 0, 99999, 99999)
, перед добавлением подвидов или ограничений, кажется, делает предупреждение уйти. Но это не совсем пахнет, как правильный способ сделать это, так может ли кто-нибудь рассказать о лучшем подходе?
У меня есть этот вопрос, и попробовал этот ответ, но я все еще получаю ошибку :(Я использую Snapkit кстати "". –
Per https: //github.com/Alex311/TableCellWithAutoLayout/commit/bde387b27e33605eeac3465475d2f2ff9775f163#commitcomment-4633188 Это не оптимальное решение. Посмотрите, пожалуйста, на мое решение. –
Только установив оценочную высоту строки, я решил проблему. self.tableView.estimatedRowHeight = 120 Спасибо Maricel – crazywood