4

我正在尝试在我的 Cocoa 应用程序中创建一个垂直进度条,即进度条应该从下到上增长。我正在使用 NSProgressIndicator,但我找不到指定垂直或水平的方法。谁能告诉我有可能做到吗?

谢谢,李

4

2 回答 2

4

您可以将控件的变换设置为将其旋转 pi/2 弧度(90 度)。这似乎是大多数人采用的常见解决方案。

于 2009-08-20T15:50:58.640 回答
0

导入 UIKit

类视图控制器: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)
    }
}

}

于 2017-05-19T05:49:53.993 回答