Я использую xib и auto layout для создания моей настраиваемой ячейки, в моей ячейке, есть многострочная метка. a в таблице heightForRowAtIndexPath, я буду использовать
1 dequeueReusableCellWithIdentifier для получения ячейки
2 затем вызовите [cell.contentView systemLayoutSizeFittingSize: UILayoutFittingCompressedSize], чтобы получить правильную высоту.
Но в отладке я обнаружил, что когда вызывается heightForRowAtIndexPath, ширина моей ячейки не является шириной таблицы, ширина ячейки такая же, как ширина xib файла (потому что в xcode6 вы можете установить размер xib для любого). поэтому высота, полученная из systemLayoutSizeFittingSize, неверна. как я могу исправить эту проблему, чтобы получить правильную высоту ячейки
размер, полученный из systemLayoutSizeFittingSize: неверен, этот размер может иметь ширину 340+ (в то время как устройство - это iPhone5, ширина которого равна 320), а 340+ - это ширина файла xib x/strong >
Наконец, я получил решение, спасибо Ашишу Габани за помощь, на самом деле решение включает в себя 2 шага: 1 reset рамка ячейки для вашего размера таблицы TableView 2 layoutSubViews ячейки вызова, прежде чем вы вызове systemLayoutSizeFittingSize, а в вашей пользовательской ячейке вам нужно переписать метод layoutSubViews. Вот код для исправления этой проблемы, я использую красный квадрат, чтобы отметить их, наслаждаюсь им