斯威夫特的百分比评分栏

时间:2015-01-24 18:47:30

标签: swift rating

我有关于votes/total votes的数据,我想添加一个显示投票百分比的百分比评分栏。即:95%并填充95%。我无法找到任何快速的指令(除了试试UISlider)。

示例:

Rating Bar (350/700 votes):
[==========50%            ]

Rating Bar (180/200 votes):
[==========90%==========  ]

Rating Bar (213/709 votes):
[======    30%            ]

1 个答案:

答案 0 :(得分:1)

使用UIView作为背景视图。然后,将另一个视图添加为子视图作为进度条。让我们把它作为一个类来实现:

class ProgressView: UIView {

    var progress: CGFloat = 0
    var filledView: UIView

    override init(frame: CGRect) {
        filledView = UIView(frame: CGRect(x: frame.origin.x, y: frame.origin.y, width: 0, height: frame.height))
        filledView.backgroundColor = Colors.fontColor

        super.init(frame: frame)
        addSubview(filledView)
    }

    required init(coder aDecoder: NSCoder) { // <-- You need to implement this
        fatalError()
    }

    func setProgess(var progress: CGFloat) {
        progress = min(max(progress, 0), 1) // Between 0 and 1
        self.progress = progress

        filledView.frame.size.width = self.frame.width * progress
    }
}

现在,您还可以添加UILabel以显示所需的百分比。