2016-12-18 4 views
0

Swift 2.2에서 UIProgressView (막대 스타일)를 만들었으므로 이제 높이를 변경하고 싶습니다. 다른 게시물은 높이를 변경하기 위해 CGAffineTransformScale을 사용하도록 제안되었습니다. 그러나 UIProgressView 높이에 영향을 미치지 않으므로 어떤 이유로이 접근 방식이 작동하지 않는 것 같습니다. 아래에서Swift에서 UIProgressView (Bar 스타일)의 높이 변경

내 코드를 찾을 수 :

나는 당신의 도움을 주셔서 감사합니다
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 특성 수 있습니다

결과는 다음 vc에서

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 
    } 

} 

, 당신은 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

깨끗한 객체 지향 솔루션에 대해 감사드립니다. width 매개 변수를 size.width와 동일하게 변경하여 일반 너비와 동일한 너비를 갖습니다. self.frame.size.width를 시도하면 ProgressBar가 훨씬 작아집니다 (일반적인 크기의 약 절반). 누구든지 이것에 대한 설명이 있습니까? – Pisan