ios - UIStackView 零高度虽然我有内容

标签 ios swift uitableview uistackview

我在 UITableViewCell 中有 UIStackView,其中有四个长文本标签。 在第一次加载时,我只在单元格中显示高度为 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()
}

This is my xib

This is how looks like before click

This is after click

谢谢大家!

最佳答案

您应该在更改 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()
}

另外,检查 this article关于在 UITableView 单元格中使用 UIStackView

关于ios - UIStackView 零高度虽然我有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41509416/

相关文章:

ios - 无法加载 bundle : 'NSBundle in iOS with Swift 中的 NIB

xcode - Facebook API 快速检索好友列表

php - 在 Swift 4 中实现 php serialize()

iOS 应用程序在 UIActionSheet 上崩溃

iOS - tableview 在向下滚动时禁用刷新

ios - UITableView 单元格的动态高度问题 (Swift)

ios - 有没有办法将 segue 操作延迟到用户通过他们的照片库选择图像或拍照之后? swift

iphone - 是否有一个很好的库来替代 UIAlertView

ios - 从 self.view 中删除所有子类 UIView

ios - Firebase 崩溃报告 - 并非所有符号文件都已上传