我创建了一个自定义UIButton类,在其中用一种颜色填充了其中的颜色,但仅部分填充了它。
目标:目的是在按钮内部填充背景颜色,但仅部分填充。例如,您有一个长按钮(高度:50.0,宽度:300.0)。我想水平填充背景色,比如说只填充50%。在这种情况下,我按钮的只有一半将充满颜色,另一半将保持透明或白色。
整个类看起来像这样:
class CustomButton: UIButton {
var color: UIColor = .clear
var percentage: CGFloat = 0
func fill(withPercentage percentage: CGFloat, isCorrect correct: Bool, onRect rect: CGRect) {
self.color = correct ? .lightishGreen : .pastelRed
self.percentage = percentage
draw(rect)
}
override func draw(_ rect: CGRect) {
super.draw(rect)
let fillRect = CGRect(
origin: CGPoint(x: rect.origin.x, y: rect.origin.y),
size: CGSize(width: rect.size.width * percentage, height: rect.size.height)
)
color.set()
guard let context = UIGraphicsGetCurrentContext() else { return }
context.fill(fillRect)
}
}
并且该课程非常好。但是,我想为该绘制过程设置动画,因此按钮的背景色可以从0.0到1.0填充。
我尝试将context.fill(fillRect)
放在UIView.animate(){}
内,但没有用。所以我想知道是否可以为绘图设置动画?
我只是不想使按钮bg的颜色清晰,并在其后放置UIView并模拟在那里的填充。想要一种干净的方法。因此,如果有人可以给我提示或告诉我如何操作,我会很高兴。预先感谢!
屏幕快照,我创建了一个自定义UIButton类,在其中我用一种颜色填充了它的内部颜色,但仅部分填充了它。目标:目标是在按钮内部填充背景颜色,但仅...
在我看来,您需要自定义动画属性。我们称它为percentage
。这是一种方法: