繁体   English   中英

如何在swift(iOS)上根据scrollview的用户当前滚动值同步/更改进度条进度

[英]How do I sync/change progress bar progress based on scrollview’s user current scroll value on swift(iOS)

我在滚动视图中进度条,当用户开始滚动时,我需要更改进度条值/颜色

假设示例进度条值将是 0 并且背景颜色在初始时将是浅灰色,如果用户开始滚动意味着需要逐渐增加进度条值(即)进度条背景颜色将填充基于滚动的其他颜色.

注意:- 这是屏幕 FYR参考设计

当滚动视图使用scrollViewDidScroll滚动时,您scrollViewDidScroll 然后,您可以根据滚动量设置进度视图的值。

class ScrollViewController: UIViewController, UIScrollViewDelegate {
    
    @IBOutlet weak var scrollView: UIScrollView!
    @IBOutlet weak var progressView: UIProgressView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        progressView.setProgress(0, animated: false) /// start at 0
        scrollView.delegate = self
    }
    
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        let offset = scrollView.contentOffset
        
        let percentageOfFullHeight = offset.y / (scrollView.contentSize.height - scrollView.frame.height) /// subtract the height of the scroll view, because the bottom of the content won't scroll all the way to the top
        
        progressView.setProgress(Float(percentageOfFullHeight), animated: true)
    }
}

滚动以设置进度视图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM