【问题标题】:How do I sync/change progress bar progress based on scrollview’s user current scroll value on swift(iOS)如何在swift(iOS)上根据scrollview的用户当前滚动值同步/更改进度条进度
【发布时间】:2020-10-15 03:29:48
【问题描述】:

我在 scrollview 中有进度条,当用户开始滚动时,我需要更改进度条值/颜色 /强>,

说示例进度条值将是 0 并且背景颜色将是 浅灰色 在初始和如果用户开始滚动意味着条值需要逐渐增加(即)进度条背景颜色将根据滚动填充其他一些颜色

注意:- 这是屏幕 FYR Reference design

【问题讨论】:

  • SwiftUI 还是 UIKit?
  • UIKit 和感谢您的回复

标签: ios swift scroll progress-bar


【解决方案1】:

您可以在滚动视图滚动时使用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)
    }
}

【讨论】:

  • 是的,它工作正常。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
  • 2020-08-28
相关资源
最近更新 更多