【发布时间】: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 上,而且我不断收到错误消息。我尝试了以下方法:
- 将内部
View布局设置为固定在ScrollView上。首先,Xcode 显示"Scrollable content size ambiguous for ScrollView",运行时没有控制台错误,但View水平扩展超过ScrollView视口和动态内容显示下方的Label。
2号规定者:UIScrollView Scrollable Content Size Ambiguity
- 使用
ScrollView.将内部View设置为水平居中和垂直居中这删除不明确的内容大小错误(耶!),并更正View跑过ScrollView视口(耶!),但动态大小的TableView下面的Label没有隐藏(假设它在TableView下)但我现在可以理解地得到@987654350 @控制台中的错误。
这是我得出的两个结果,但我现在陷入困境。我已经检查了 Apple 文档中有关 ScrollViews 的步骤并完全按照它来确定,但我认为我遇到了这个问题,因为我正在做动态大小的 TableView 或一些 AutoLayout 错误。
有人可以帮忙吗?谢谢!
【问题讨论】:
标签: ios xcode uitableview uiscrollview autolayout