Ios TableView滚动到最后一个单元格之外
我在一个ViewController中有两个TableView,我为它们设置了约束。我还设置了约束和对齐。问题是,当它开始时,对齐工作与预期一样,但是当我按下上面的TableView1(到达底部)时,它会进一步推动最后一个单元格(请查看下面的屏幕截图) 上次更新:我想到了一个解决方法,但我不知道如何应用它。如果我可以得到TableView中最后一行的y位置,也许我可以强制TableView不要滚动到“y位置+行高度”下面。我有办法做到吗Ios TableView滚动到最后一个单元格之外,ios,iphone,swift,uitableview,constraints,Ios,Iphone,Swift,Uitableview,Constraints,我在一个ViewController中有两个TableView,我为它们设置了约束。我还设置了约束和对齐。问题是,当它开始时,对齐工作与预期一样,但是当我按下上面的TableView1(到达底部)时,它会进一步推动最后一个单元格(请查看下面的屏幕截图) 上次更新:我想到了一个解决方法,但我不知道如何应用它。如果我可以得到TableView中最后一行的y位置,也许我可以强制TableView不要滚动到“y位置+行高度”下面。我有办法做到吗 原始问题: 它在启动时工作正常,最后一行/单元格的底
原始问题: 它在启动时工作正常,最后一行/单元格的底部连接到TableView的底部时,似乎与预期的一样 (红色为TableView1,粉色为TableView2) 但是当向上滚动到底部时,滚动的次数比底部单元格多。相反,底部单元格应附着到TableView1的底部 (蓝色是TableView1的背景色) 有什么问题吗?如何使TableView1的底部TableViewCell附加到TableView1的底部,以便不进行更多的滚动 更新:我将TableView1的高度设置为132,每行设置为44。它创造了一个与44相同大小的缺口。但是我检查了章节中的numberOfRowsInSection,计数与预期一致,而不是+1 为什么会发生这种情况
Update2:我很确定这不是代码,但这里是代码 TableView1约束条件:
尽管您的代码中似乎没有任何错误,但当我尝试重新创建场景时,我无法重现它。我使用了两个宽度相等的UITableView,TableView的两个单元格都是默认的Basic。 这是代码
class ViewController: UIViewController {
@IBOutlet var tableView1:UITableView!
@IBOutlet var tableView2:UITableView!
let data1 = ["First Table, Data 1","First Table, Data 2","First Table, Data 3","First Table, Data 4","First Table, Data 5","First Table, Data 6","First Table, Data 7","First Table, Data 8"]
let data2 = ["Second Table, Data 1","Second Table, Data 2","Second Table, Data 3","Second Table, Data 4","Second Table, Data 5","Second Table, Data 6","Second Table, Data 7","Second Table, Data 8"]
override func viewDidLoad() {
super.viewDidLoad()
tableView1.dataSource = self
tableView2.dataSource = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
extension ViewController:UITableViewDataSource
{
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
if tableView.isEqual(self.tableView1)
{
return data1.count
}
else if tableView.isEqual(self.tableView2)
{
return data2.count
}
return 0
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
if tableView == self.tableView1
//if tableView.isEqual(self.tableView1)
{
let cell = tableView.dequeueReusableCellWithIdentifier("Cell1")
cell?.textLabel?.text = data1[indexPath.row]
return cell!
}
else
{
let cell = tableView.dequeueReusableCellWithIdentifier("Cell2")
cell?.textLabel?.text = data2[indexPath.row]
return cell!
}
}
}
我终于找到了答案。奇怪的是,当我的“一副视图”是
TabBarController -> NavBarController -> ViewController -> View -> 2xTableViews
…它引起了马车的视线。我试图在一个虚拟项目中重新创建问题,以了解问题的性质,这也在虚拟项目中导致了相同的问题
答案是:
答案是在ViewController中取消勾选调整滚动视图插入。现在一切正常。你能制作一个滚动视频剪辑吗?我编辑了这个问题。我发现这并不是约束,但TableView1的最后一个单元格滚动得更多,所以间隙似乎介于两者之间。如何使TableView1的最后一行将其底部附加到TableView,而不进行更多的滚动@sschale您能发布您的tableview代码和第一个tableview的约束条件吗?@idocode I更新了问题并添加了
numberofrowsinssection
和cellforrowatinexpath
。您能看一下吗?除了示例数据数组中缺少“]”,您的代码似乎没有任何错误。我尝试重新创建您的场景,但我的两个TableView都正常工作。尝试删除所有约束并重写tableviews数据源一次,以查看是否有任何缺少的链接??对我来说似乎没有任何问题,我使用的代码如上所述。不幸的是,我不能接受您的答案,因为它肯定不是代码,我想这是我使用TabBarController->NavBarCon->ViewController->2xtableview时造成的。(我正在GitHub上使用AnimatedAbbarController,但这不应该是原因)。我完全卡住了。我创建了另一个显示TableView行为的视频,请在此处查看。我打开垂直指示器,让它变得清晰
TabBarController -> NavBarController -> ViewController -> View -> 2xTableViews