【问题标题】:Dynamically-sized TableView creating AutoLayout issues动态大小的 TableView 创建 AutoLayout 问题
【发布时间】:2016-06-01 08:12:18
【问题描述】:

我有一个占据整个设备屏幕的ScrollView

在这个ScrollView 内部有一个View,它可以容纳3 个Labels,在TableView 的下方,最后是在Label 的下方。

现在,TableView 注入了未知数量的项目,我不希望它滚动,因此我将其高度附加为 动态调整大小的NSLayoutContraint并在项目被解析后重新加载。

这是在数据进入后调整表格大小的方式:

@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var tableHeight: NSLayoutConstraint!

var array = [String]()

let import = self.items!["people"] as? String

array = import!.componentsSeparatedByString(",")

let height = CGFloat(self.array.count * 50)

self.tableHeight.constant = height

self.tableView.reloadData()

这一切都很好,但问题出在 AutoLayout 上,而且我不断收到错误消息。我尝试了以下方法:

  1. 将内部View 布局设置为固定在ScrollView 上。首先,Xcode 显示"Scrollable content size ambiguous for ScrollView",运行时没有控制台错误,但View 水平扩展超过ScrollView 视口和动态内容显示下方的Label

2号规定者:UIScrollView Scrollable Content Size Ambiguity

  1. 使用ScrollView. 将内部View 设置为水平居中和垂直居中这删除不明确的内容大小错误(耶!),并更正 View 跑过ScrollView 视口(耶!),但动态大小的TableView 下面的Label 没有隐藏(假设它在TableView 下)但我现在可以理解地得到@987654350 @控制台中的错误。

这是我得出的两个结果,但我现在陷入困境。我已经检查了 Apple 文档中有关 ScrollViews 的步骤并完全按照它来确定,但我认为我遇到了这个问题,因为我正在做动态大小的 TableView 或一些 AutoLayout 错误。

有人可以帮忙吗?谢谢!

【问题讨论】:

    标签: ios xcode uitableview uiscrollview autolayout


    【解决方案1】:

    你有没有为此使用堆栈视图?您应该能够将滚动视图设置为堆栈以及其他所有内容,然后覆盖它们。您可能必须使用 X、Y 选项,因为拖动会将其放入堆栈视图中。

    【讨论】:

    • 你就是那个男人。说真的,这对 BIG TIME 很有帮助。根据你的建议,我插入了一个垂直的StackView,顶部是动态大小的TableView,然后是一堆Views,里面填满了LabelsTableViews等,效果很好。
    • @simplexity 哦,是的,我相信,堆栈视图会改变你的生活!我不知道我是怎么错过了所有关于它们的炒作,但苹果实际上是在说开发人员从现在开始应该的工作方式是先做堆栈视图,然后担心约束。很高兴它有帮助! =]
    【解决方案2】:
    use these two lines code in tableview delegate method height for Row
    
    
    self.tableView.estimatedRowHeight = 44.0;
    return tableView.rowHeight = UITableViewAutomaticDimension;
    

    【讨论】:

    • 谢谢,我过去确实使用过这些,但它们触发了关于零大小表的错误。堆栈视图的公认答案更符合我正在寻找的解决方案。有关这些线路及其功能的更多信息,我确实在不久前写了一个问题。看看这个! Dynamic Height Issue for UITableView Cells (Swift)
    猜你喜欢
    • 1970-01-01
    • 2020-05-13
    • 2015-01-13
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 2015-03-03
    • 1970-01-01
    相关资源
    最近更新 更多