Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios TableView滚动到最后一个单元格之外_Ios_Iphone_Swift_Uitableview_Constraints - Fatal编程技术网

Ios TableView滚动到最后一个单元格之外

Ios TableView滚动到最后一个单元格之外,ios,iphone,swift,uitableview,constraints,Ios,Iphone,Swift,Uitableview,Constraints,我在一个ViewController中有两个TableView,我为它们设置了约束。我还设置了约束和对齐。问题是,当它开始时,对齐工作与预期一样,但是当我按下上面的TableView1(到达底部)时,它会进一步推动最后一个单元格(请查看下面的屏幕截图) 上次更新:我想到了一个解决方法,但我不知道如何应用它。如果我可以得到TableView中最后一行的y位置,也许我可以强制TableView不要滚动到“y位置+行高度”下面。我有办法做到吗 原始问题: 它在启动时工作正常,最后一行/单元格的底

我在一个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