Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.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_Swift_Uitableview_Uiscrollview - Fatal编程技术网

Ios 敏捷的如何滚动滚动视图(TableView),首先将其移动到全屏,然后滚动内容本身

Ios 敏捷的如何滚动滚动视图(TableView),首先将其移动到全屏,然后滚动内容本身,ios,swift,uitableview,uiscrollview,Ios,Swift,Uitableview,Uiscrollview,我注意到在一些应用程序中滚动的有趣行为。例如,在Viber应用程序中,顶部的“更多”菜单中有某种标题视图,在我看来,下面是一个uitableview表。向下滚动时,顶部标题首先隐藏,表格与全屏对齐,然后内容才会在其中滚动: 此外,此滚动会随着滚动而平滑进行,即使您用手指轻轻滑动并松开它,滚动也会以相同的惯性继续移动,并平滑地隐藏上标题视图,然后滚动表格本身。如何达到同样的效果 我尝试使用scrollViewDidScroll执行相同的操作,但结果只执行以下操作: @IBOutlet

我注意到在一些应用程序中滚动的有趣行为。例如,在Viber应用程序中,顶部的“更多”菜单中有某种标题视图,在我看来,下面是一个uitableview表。向下滚动时,顶部标题首先隐藏,表格与全屏对齐,然后内容才会在其中滚动:





此外,此滚动会随着滚动而平滑进行,即使您用手指轻轻滑动并松开它,滚动也会以相同的惯性继续移动,并平滑地隐藏上标题视图,然后滚动表格本身。如何达到同样的效果

我尝试使用
scrollViewDidScroll
执行相同的操作,但结果只执行以下操作:

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

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 30
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = UITableViewCell()
    cell.textLabel?.text = "\(indexPath.row)"
    return cell
}

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let y = scrollView.contentOffset.y
    if y <= headerViewHeight && y >= 0 {
        tableViewTopAnchor.constant = -y
    } else if tableViewTopAnchor.constant != -headerViewHeight && y > headerViewHeight {
        tableViewTopAnchor.constant = -headerViewHeight
    }
}

let headerViewHeight: CGFloat = 150

在滚动开始时,表格本身会滚动,同时,标题视图也会隐藏,并获得更高的滚动速度。也许你可以这样做,使表中的滚动开始,但其中的内容实际上保留在一个地方。另外,当tableview滚动到最顶端时,如果你再进一步滚动它,那么我希望它自己移动,而不是其中的内容

我的代码如下:

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

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 30
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = UITableViewCell()
    cell.textLabel?.text = "\(indexPath.row)"
    return cell
}

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let y = scrollView.contentOffset.y
    if y <= headerViewHeight && y >= 0 {
        tableViewTopAnchor.constant = -y
    } else if tableViewTopAnchor.constant != -headerViewHeight && y > headerViewHeight {
        tableViewTopAnchor.constant = -headerViewHeight
    }
}

let headerViewHeight: CGFloat = 150
@ibvar-tableView:UITableView!
@IBVar tableViewTopAnchor:NSLayoutConstraint!
func tableView(tableView:UITableView,numberofrowsinssection:Int)->Int{
返回30
}
func tableView(tableView:UITableView,cellForRowAt indexath:indexPath)->UITableViewCell{
let cell=UITableViewCell()
cell.textlab?.text=“\(indexPath.row)”
返回单元
}
func scrollViewDidScroll(scrollView:UIScrollView){
设y=scrollView.contentOffset.y
如果y=0{
tableViewTopAnchor.constant=-y
}否则如果tableViewTopAnchor.constant!=-headerViewHeight&&y>headerViewHeight{
tableViewTopAnchor.constant=-headerViewHeight
}
}
让headerViewHeight:CGFloat=150
故事板:

我尝试使用
scrollView.contentOffset.y=0
停止在
scrollViewDidScroll
中滚动表格中的内容,但是滚动通常会停止工作(

我很抱歉,如果这样的问题已经存在,但我找不到完全相同的。我希望有一个链接和/或示例

提前感谢您的帮助:)

将为您提供大部分帮助。会让你一路走到那里。