2017-02-06 10 views
-1

У меня есть UITableViewCell. Внутри ячейки у меня есть UILabel и UIButton, когда пользователь нажимает кнопку, текст расширяется, но ячейки нет. Поэтому я хочу, чтобы ячейка увеличивала ее высоту с помощью метки.Увеличьте высоту ячейки

Я попробовал этот код, но он дал мне аварию (неожиданно нашел ноль)

tableView.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .fade) 

попробовал этот же снова врезаться

tableView.rowHeight = cellHeightNumber 

Поэтому в основном я хочу, чтобы работать, как это

До расширения:

Before expanding

После расширения:

After expanding

+0

Включить контрольные точки исключения в Xcode (см. Здесь: http://stackoverflow.com/questions/17802662/exception-breakpoint-in-xcode), а затем вы можете выяснить, где происходит ваш сбой. Это может помочь решить вашу проблему. – Koen

+0

Можете ли вы опубликовать фактический журнал аварий? Это поможет диагностировать то, что происходит не так, и даст некоторый контекст относительно направления, которое вы должны предпринять. –

+0

Возможный дубликат [Использование автоматической компоновки в UITableView для динамических раскладок ячеек и высоты строк] (http://stackoverflow.com/questions/18746929/using-auto-layout-in-uitableview-for-dynamic-cell-layouts- height-row-height) –

ответ

0

Я могу дать вам два решения:

  1. канаву reloadRows и использовать reloadData вместо этого, например, так: tableView.reloadData()

  2. Оберните reloadRows между beginUpdates и endUpdates, например, так:

    override func viewDidLoad() { 
        super.viewDidLoad() 
    
        tableView.beginUpdates() 
        // Your reloadRows codes here 
        tableView.endUpdates() 
    } 
    
0

Вы должны использовать

UITableViewAutomaticDimension

обеспечивает решение для отображения динамического контента. Использование ниже кода в viewDidLoad:

tableView.estimatedRowHeight = YourTableViewHeight tableView.rowHeight = UITableViewAutomaticDimension

Используйте эту ссылку: http://www.appcoda.com/self-sizing-cells/

Также установите номер строки 0 для печати этикеток в ячейке таблицы.

Надеюсь, это поможет. :)