[英]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.