我在ViewController中有2个TableView,并且为它们都设置了约束。我还设置了约束和对齐方式。问题是,当它开始时,对齐方式将按预期工作,但是当我将TableView1推入上方(移至底部)时,它将推入最后一个单元格更多(请检查以下屏幕截图)。
Here is a video showing the problem
And the behaviour of horizontal inspector
最近更新:我想到了一种解决方法,但我不知道如何应用它。如果我可以获得TableView内最后一行的y位置,也许我可以强制TableView不要滚动到“y位置+行高”以下。有办法吗?
原始问题:
它启动时工作正常,并且看起来与预期的一样,最后一行/单元格的底部已附加到TableView的底部
(红色是TableView1,粉红色是TableView2)
但是,当向上滚动并到达底部时,滚动会比底部单元格更多。而是应将底部单元格附加到TableView1的底部。
(蓝色是TableView1的背景色)
可能是什么问题?如何使TableView1的底部TableViewCell附加到TableView1的底部,所以不会滚动更多?
更新:我将TableView1的高度设置为132,并将每一行设置为44。它创建的间隙与44的大小相同。但是我检查了numberOfRowsInSection
,计数是预期的,而不是+1。
为什么会发生这种情况?
Update2:我很确定这不是代码,但这是代码
TableView1约束:
let sampleData = [
PreviewDetail(title: "Small"),
PreviewDetail(title: "Medium"),
PreviewDetail(title: "Large"),
PreviewDetail(title: "Large")
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:UITableViewCell?
if tableView == self.TableView1 {
cell = tableView.dequeueReusableCellWithIdentifier("TV1Cell", forIndexPath: indexPath)
let previewDetail = sampleData[indexPath.row]
cell!.textLabel!.text = previewDetail.title
}
return cell!
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var count:Int?
if tableView == self.TableView1 {
count = sampleData.count
}
return count!
}
最佳答案
最后,我找到了答案。奇怪的是,当我拥有“Deck of Views”时
TabBarController -> NavBarController -> ViewController -> View -> 2xTableViews
..它引起了越野车视图。我尝试在虚拟项目中重新创建该问题以了解问题的性质,并且它也在虚拟项目中引起了同样的问题。
答案:
答案是在ViewController中取消
Adjust Scroll View Insets
。现在一切正常。