【问题标题】: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
【问题讨论】:
标签:
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)
}
}