2016-12-18 41 views
0

我在Swift 2.2中創建了一個UIProgressView(酒吧風格),現在想改變其高度。其他一些帖子建議使用CGAffineTransformScale來改變高度。但是,由於某種原因,這種方法似乎不起作用,因爲它對UIProgressView的高度沒有任何影響。在Swift中更改UIProgressView(酒吧風格)的高度

下面你會發現我的代碼:

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

我感謝您的幫助,非常感謝!

+0

試着設置UIProgressView的高度約束。 – iTamilan

+0

究竟是什麼問題?難道你看不到它?你是否以編程方式創建它? –

回答

4

你也可以繼承UIProgressView,並添加height屬性:

結果:

enter image description here

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 
    } 

} 

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 

    } 
} 
+0

非常感謝清潔的面向對象的解決方案! 我改變寬度參數等於size.width爲了有相同的寬度正常。當我嘗試self.frame.size.width時,ProgressBar變得小得多(約爲正常尺寸的一半)。有沒有人對此有過解釋? – Pisan