【问题标题】:Change height of UIProgressView (Bar style) in Swift在 Swift 中更改 UIProgressView(条形样式)的高度
【发布时间】:2017-05-03 18:05:24
【问题描述】:

我在 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

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

【问题讨论】:

  • 尝试通过设置UIProgressView的高度约束。
  • 到底是什么问题?是你看不见吗?您是否以编程方式创建它?

标签: ios swift swift2 height uiprogressview


【解决方案1】:

你可以继承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
    }

}

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

    }
}

【讨论】:

  • 非常感谢干净的面向对象解决方案!我将宽度参数更改为 size.width 以便具有与正常宽度相同的宽度。当我尝试 self.frame.size.width 时,ProgressBar 变得更小(大约是正常大小的一半)。有人对此有解释吗?
猜你喜欢
  • 2015-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
  • 2015-12-03
  • 1970-01-01
  • 2013-03-22
  • 2019-01-14
相关资源
最近更新 更多