在Swift中更改UIProgressView(Bar样式)的高度

Pis*_*san 0 height uiprogressview ios swift swift2

我在Swift 2.2中创建了一个UIProgressView(条形样式),现在想改变它的高度.建议使用其他一些帖子CGAffineTransformScale来改变身高.但是,出于某种原因,这种方法似乎不起作用,因为它对UIProgressView的高度没有任何影响.

您将在下面找到我的代码:

let progressBar = UIProgressView(progressViewStyle: .Bar)
progressBar.progress = 0.5
progressBar.translatesAutoresizingMaskIntoConstraints = false
progressBar.transform = CGAffineTransformScale(progressBar.transform, 1, 20)
self.navigationItem.titleView = progressBar
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助,非常感谢!

air*_*aft 5

您可以子类化UIProgressView并添加height属性:

结果:

在此输入图像描述

import UIKit

class CustomProgressView: UIProgressView {

    var height:CGFloat = 1.0 
    // Do not change this default value, 
    // this will create a bug where your progressview wont work for the first x amount of pixel. 
    // x being the value you put here.

    override func sizeThatFits(_ size: CGSize) -> CGSize {
        let size:CGSize = CGSize.init(width: self.frame.size.width, height: height)

        return size
    }

}
Run Code Online (Sandbox Code Playgroud)

vc,你初始化customProgressvView,并设置height:

import UIKit

class ViewController2: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let progressBar = CustomProgressView(progressViewStyle: .bar)
        progressBar.progress = 0.5
        progressBar.height = 10.0
        self.navigationItem.titleView = progressBar

    }
}
Run Code Online (Sandbox Code Playgroud)