UIStackView нулева височина, въпреки че имам съдържание в него

Имам UIStackView в UITableViewCell и имам четири дълги текстови етикета в него. При първото зареждане показвам само първия етикет с височина 44 в клетката и скривам другите три и StackView показва правилно. След това, когато щракна върху tableViewCell, трябва да разширя клетката и да покажа други три етикета. Показвам ги и презареждам TableView, но моят StackView има нулева височина след това и всичките четири етикета също имат нулева височина. Срещнах този проблем само с IOS 10.1 и когато използвам етикети с кратък текст, StackView работи добре.

Това е моят код:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    var cell  = tableView.cellForRowAtIndexPath(indexPath) as! AboutUsTableViewCell
    cell.firstLabel.hidden = isExpanded
    cell.secondLabel.hidden = isExpanded
    cell.thirdLabel.hidden = isExpanded
    isExpanded = !isExpanded
    tableView.reloadData()
}

Това е моят xib

Ето как изглежда преди щракване

Това е след щракване

Благодаря на всички ви!


person Svetoslav Bramchev    schedule 06.01.2017    source източник


Отговори (2)


Трябва да актуализирате таблицата след промяна на свойствата на isHidden. Това трябва да свърши работа.

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    var cell  = tableView.cellForRowAtIndexPath(indexPath) as! AboutUsTableViewCell
    cell.firstLabel.hidden = isExpanded
    cell.secondLabel.hidden = isExpanded
    cell.thirdLabel.hidden = isExpanded
    isExpanded = !isExpanded
    tableView.beginUpdates()
    tableView.endUpdates()
}

Също така проверете тази статия относно използването на UIStackView в UITableView клетки

person Maksym Musiienko    schedule 06.01.2017

Задайте броя на редовете на Labels на 0 и добавете кода по-долу към метода viewDidLoad.

self.tableView.estimatedRowHeight = 44.0 //or cell height
self.tableView.rowHeight = UITableViewAutomaticDimension
person Bista    schedule 06.01.2017
comment
Вече зададох UITableViewAutomaticDimension и всичките ми етикети имат 0 броя редове. Както казах, всичко работи перфектно за IOS 9 и IOS 10.2. Имам проблем само с IOS 10.1 - person Svetoslav Bramchev; 06.01.2017