2017-01-13 3 views
1

Я использую UITableView, чтобы показать сообщение, а ячейки имеют разную высоту. Он работает хорошо, прежде чем мы обновим проект до swift3.Высота UItableViewCell Issue

Выпуск:

Если я запускаю тот же проект в iOS 8.1, то UITableView покажет с неправильной высоты 44 (высота ячейки по умолчанию).

Я проверить, что UITableView позвонит

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 

методу каждый раз перед -viewDidAppear и после -viewWillAppear

метода, чтобы вычислить высоту каждой первой ячейки в сессии.

Выход:Printed Height Output Here

Тест с iOS 9.3, он никогда не вызывается метод после того, как UITableView был впервые загружен.

Я думаю, что это причина, по которой дайте мне неправильную высоту, но почему она звонит?

+0

Вопрос неубранные. Таким образом, сообщение завершается и снова пишет ясно. –

ответ

0

Реализовать это UITableViewDelegate методы:

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
} 

и

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
{ 
    return UITableViewAutomaticDimension 
} 
+0

Да, он работает с ограничениями, которые указываются в раскадровке. И знаете ли вы, почему это так? – CSwater

+0

@CSwater Я тебя не понимаю. –

+0

Я сделал, как вы говорите, и убедитесь, что ячейка имеет определенное ограничение по высоте, а затем получить правильную высоту ячейки. ...... Я постараюсь изо всех сил улучшить свой английский (-_- #) – CSwater

Смежные вопросы