如何创建垂直进度条-IOS-Swift
我正在尝试创建一个垂直进度条。但问题是我的代码在IOS11或更高版本上运行,但在IOS9上运行不正常 在IOS11或更高版本上,它看起来像: 但是在IOS9上,它看起来像: 我的代码:如何创建垂直进度条-IOS-Swift,ios,swift,uiprogressview,Ios,Swift,Uiprogressview,我正在尝试创建一个垂直进度条。但问题是我的代码在IOS11或更高版本上运行,但在IOS9上运行不正常 在IOS11或更高版本上,它看起来像: 但是在IOS9上,它看起来像: 我的代码: let progressBar: UIProgressView = { let prgressView = UIProgressView() prgressView.progress = 0.7 prgressView.progressTintColor = UIColor(red: 1
let progressBar: UIProgressView = {
let prgressView = UIProgressView()
prgressView.progress = 0.7
prgressView.progressTintColor = UIColor(red: 1.0, green: 0.21, blue: 0.33, alpha: 1)
prgressView.trackTintColor = UIColor.blue
prgressView.layer.cornerRadius = 6.5
prgressView.clipsToBounds = true
prgressView.transform = CGAffineTransform(rotationAngle: .pi / -2)
prgressView.translatesAutoresizingMaskIntoConstraints = false
return prgressView
}()
布局子视图()
viewDidLoad()
我遵循本教程创建垂直进度视图:我可以通过对您发布的代码进行两次更改,使您的代码在iOS 9和iOS 12下正常工作:
布局子视图
。您已经设置了约束。也不要尝试直接修改视图的框架layoutSubviews
,并将约束修复为:
progressBar.widthAnchor.constraint(equalToConstant: 250).isActive = true
progressBar.heightAnchor.constraint(equalToConstant: 22.5).isActive = true
截至2018年9月3日,因此。。为什么要担心呢?只需设置你的最低iOS版本就可以了。这不像Android,人们可以随意选择操作系统。一旦人们收到有新版本的通知,他们通常会安装它。没有回头路了。是的,我已经试过了,但问题是当我尝试应用一些顶锚或底锚时,锚定点根据预期的22.5的高度开始。同样,约束将应用于不进行变换的视图。因此,如果您希望垂直进度条的“顶部”距离顶部40点,您确实需要将约束设置为
(宽度-高度)/2+偏移量
或(250-22.5)/2+40
。此时您已经超出了原来的问题,因为这不是任何iOS版本所特有的。谢谢,我将尝试此方法。您还可以覆盖var intrinsicContentSize
以返回高度和宽度已交换的CGSize。例如,CGSize(宽度:rotatedView.intrinsicContentSize.height,高度:rotatedView.intrinsicContentSize.width)
。
self.addSubview(progressBar)
progressBar.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
progressBar.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
progressBar.widthAnchor.constraint(equalToConstant: 22.5).isActive = true
progressBar.heightAnchor.constraint(equalToConstant: 250).isActive = true
progressBar.widthAnchor.constraint(equalToConstant: 250).isActive = true
progressBar.heightAnchor.constraint(equalToConstant: 22.5).isActive = true