我不确定(因为我找不到任何东西)这是否是进度视图的工作方式,但是当我的值低于0.1时,比如说0.05,进度视图总是显示为0.1,那么高于0.1的任何东西都可以工作。
这正常吗?

最佳答案

这是使用小宽度的UIProgressView的副作用。苹果之所以做出这个决定,很可能是因为他们想给用户一个清晰可见的反馈,告诉他们正在取得一些进展——即使这个观点本身很短。
对于解决方法,可以创建一个自定义进度视图,其中有两个视图-一个用于栏本身,另一个用于进度。之后,可以将进度视图的宽度设置为条形图本身的宽度乘以进度百分比。
可以将cornerRadiusCALayer属性用于圆角边。

let barWidth: CGFloat = 240
let barHeight: CGFloat = 2
let progress: CGFloat = 0.23

let progressBarView = UIView(frame: CGRect(x: 0, y: 0, width: barWidth, height: barHeight))
progressBarView.backgroundColor = .lightGray
progressBarView.layer.cornerRadius = barHeight / 2
progressBarView.clipsToBounds = true
view.addSubview(progressBarView)

let progressView = UIView(frame: CGRect(x: 0, y: 0, width: barWidth * progress, height: barHeight))
progressView.backgroundColor = .blue
progressBarView.addSubview(progressView)

结果:
ios - 低于0.1的UIProgressView值显示不正确-LMLPHP

关于ios - 低于0.1的UIProgressView值显示不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37894267/

10-10 09:59