如何绘制矩形并根据电池级别填充颜色
问题描述:
我想在Swift3中绘制矩形并根据手机的电池电量进行绘制,例如,如果电池电量为100%,则矩形必须完全填充。如果电池电量为67%,那么填充应该是该矩形宽度的67%。如何绘制矩形并根据电池级别填充颜色
我对CGRect库和绘图很新颖。
这里是我的尝试至今:
let layer = CAShapeLayer()
layer.path = UIBezierPath(roundedRect: CGRect(x: battery.frame.origin.x,
y: battery.frame.origin.y,
width: (battery.image?.size.width)!,
height: (battery.image?.size.height)!),
cornerRadius: 0).cgPath
layer.fillColor = UIColor.red.cgColor
view.layer.addSublayer(layer)
电池图标,基本上已经没有在页面上只有在以下形状边界例如:
------ | | ------
答
这是一个初始点。
在游乐场中的代码粘贴并点击Show Result
在最后一行
class LevelView : UIView {
init(frame: CGRect, level: CGFloat) {
super.init(frame: frame)
self.layer.borderWidth = 1.0
let levelLayer = CAShapeLayer()
levelLayer.path = UIBezierPath(roundedRect: CGRect(x: frame.origin.x,
y: frame.origin.y,
width: frame.width * level,
height: frame.height),
cornerRadius: 0).cgPath
levelLayer.fillColor = UIColor.red.cgColor
self.layer.addSublayer(levelLayer)
}
required init?(coder aDecoder: NSCoder) {
fatalError("Required, but Will not be called in a Playground")
}
}
let view = LevelView(frame: CGRect(x: 0, y: 0, width: 64, height: 32), level: 0.75)
+0
谢谢!你可以看看我发布的另一个问题吗? – fscore
由于电池电平值的端部0.0和1.0之间的宽度是简单地'image.width * batteryLevel' – vadian
无法画出来,因为我是新来绘制和填充颜色。数学不难在这里 – fscore