UITableView 如何保持滚动到底部[自动滚动]?

英雄阿罗姆

我花了很多时间来找出这个错误。一开始滚动看起来不错,但不时滚动增加自动,这使人类无法阅读。如何像开始时一样保持滚动。

    var  start_index = 0
    var  dest_index  = 0  //approximately 300  
    var  timer       = Timer()
    var  falagisTrue : Bool?

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        dest_index = newsViewModels.count
        timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(self.keepScrolling), userInfo: nil, repeats: true)

    }



    @objc func keepScrolling(){
        if start_index > dest_index - 2{
            timer.invalidate()
        }else{
            if  (falagisTrue ?? false ||  falagisTrue == nil)  {
                falagisTrue = false
                start_index += 1

                UIView.animate(withDuration: 10, delay: 0, options: [], animations: {
                    let Index = IndexPath(row: self.start_index, section: 0)
                    self.tableView.scrollToRow(at:Index, at: .top, animated: false)
                }) { finished in
                    self.falagisTrue = true
                }
            }
        }
    }

你能帮我修复这个错误还是提供任何替代解决方案来保持自动滚动?

弗拉迪斯拉夫·马尔科夫

我尝试了你的代码,它对我来说工作正常。但:

  1. 您可以添加动画选项 .curveLiner(动画将在整个持续时间内均匀发生)。可能是你的错误:

    UIView.animate(withDuration: 10, delay: 0, options: [.curveLinear], animations: {
        let Index = IndexPath(row: self.start_index, section: 0)
        self.tableView.scrollToRow(at:Index, at: .top, animated: false)
    }) { finished in
        self.falagisTrue = true
    }
    
  2. 您应该在视图消失时使计时器失效(不同的视图在旧计时器工作时每次都会创建额外的计时器):

    override func viewWillDisappear(_ animated: Bool) {
        timer.invalidate()
    }
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

UITableView滚动到底部

来自分类Dev

iOS UITableView如何禁用滚动到底部弹跳

来自分类Dev

UITableView滚动到底部,与EstimatedRowHeight混淆

来自分类Dev

检测UITableView何时滚动到底部

来自分类Dev

UITableView不会滚动到底部

来自分类Dev

iOS-UITableView不会滚动到底部

来自分类Dev

iOS UITableView滚动到本节底部

来自分类Dev

在iOS 7上滚动到UITableView的底部?

来自分类Dev

将表格滚动到底部后,使用新数据更新UITableView的数据源

来自分类Dev

自动滚动到底部

来自分类Dev

UITableView滚动到部分

来自分类Dev

UITableView:如何从底部滚动(如对话列表)?

来自分类Dev

一直向下滚动到UITableView的底部

来自分类Dev

我将如何使div自动滚动到底部?

来自分类Dev

Textarea自动滚动到底部

来自分类Dev

使div自动滚动到底部(反应)

来自分类Dev

UITableView滚动时如何保持UITableViewCell状态?

来自分类Dev

UITableView可滚动到UIVIewController

来自分类Dev

使用 UITableView 自动在 UITableView 顶部滚动 UIImageView

来自分类Dev

滚动滚动到底部,但内容保持在顶部

来自分类Dev

Tkinter:用户不滚动时自动滚动到底部

来自分类Dev

如何修复JTextArea滚动到底部?

来自分类Dev

如何始终滚动到底部?

来自分类Dev

如何使RecyclerView始终滚动到底部

来自分类Dev

ListView:如何始终滚动到底部

来自分类Dev

如何编写imacro滚动到底部

来自分类Dev

如何设置 UIScrollView 滚动到底部?

来自分类Dev

如何防止内容滚动到UITableView的页脚后面

来自分类Dev

UITableView滚动不滚动