2009-08-20 14 views
3

私はCocoaアプリで垂直方向のプログレスバーを作成しようとしています。つまり、プログレスバーは下から上に向かって大きくなるはずです。私はNSProgressIndicatorを使用しています。垂直または水平を指定する方法が見つかりません。誰でも私にそれをすることが可能であると教えてもらえますか?Cocoaで垂直方向のプログレスバーを作成するには?

おかげで、 リー

答えて

3

あなたは、π/ 2ラジアン(90度)、それを回転させる制御の変換を設定することができます。それはほとんどの人が取る一般的な解決策のようです。

+1

おかげで、それは働きました! –

0

輸入のUIKit

クラスのViewController:のUIViewController {

// THis is custom Progress view 
var progessView:VerticalProgressView! 

// We can also use default progress view given by UIKIT 
var defaultProgressView:UIProgressView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Custom Progress view 
    progessView = VerticalProgressView(frame: CGRect(x: 0, y: 160, width: 15, height: 200)) 
    progessView.center.x = self.view.center.x - 80 
    self.view.addSubview(progessView) 

    //Default Progress view 
    defaultProgressView = UIProgressView(progressViewStyle: .bar) 
    self.view.addSubview(defaultProgressView) 
} 

override func viewDidLayoutSubviews() { 

    defaultProgressView.frame = CGRect(x: self.view.center.x + 30, y: 300, width: 100, height: 300) 
    defaultProgressView.progressTintColor = UIColor.green 
    defaultProgressView.backgroundColor = UIColor.clear 
    defaultProgressView.layer.borderWidth = 0.3 
    //defaultProgressView.layer.borderColor = [UIColor.redColor] 

    // Change the width of default Progress view 
    let customWidth = CGAffineTransform(scaleX: 5.0, y: 3.0) 
    // Transform from default horizontal to vertical 
    let rotate = CGAffineTransform(rotationAngle: (CGFloat.pi/2 + CGFloat.pi)) 

    //Two transforms should be concated and applied 
    defaultProgressView.transform = rotate.concatenating(customWidth) 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    self.progessView.setProgress(progress: 0.50, animated: true) 
    UIView.animate(withDuration: 0.95) { 
     self.defaultProgressView.setProgress(0.50, animated: true) 
    } 
} 

}

関連する問題