【发布时间】:2020-04-28 13:08:45
【问题描述】:
我的任务是在draw(_:) 方法中绘制矩形并为其高度设置动画。
var height = 0
override func draw(_ rect: CGRect) {
let rect = CGRect(x: 0, y: 0, width: 100, height: height)
let rectanglePath = UIBezierPath(rect: rect)
UIColor.green.setFill()
rectanglePath.fill()
}
我正在寻找这样的动画:
func animate() {
UIView.animate(withDuration: 2) {
self.height = 300
}
}
我也可以使用CAShapeLayer和CABasicAnimation,但是我不知道如何在draw(_:)方法中绘制它。此任务需要使用draw(_:) 方法:(
【问题讨论】:
-
什么意思“在这个任务中需要使用
draw(_:)方法”?当操作系统告诉您它需要更新时,您覆盖draw(_:)以更新矩形... -
正确。 “必需”意味着我必须在此任务中使用此方法。我知道还有其他方法可以解决它,但我让你使用方法 draw(_:)
-
嗯,这就像说 “我必须在用户输入任何文本之前评估输入到字段中的文本。” 仅仅因为您认为您必须在特定的功能并不意味着它是正确的地方。也许如果您编辑您的问题并准确解释您想要做什么以及为什么您认为必须在
draw(_:)中完成?
标签: ios swift uibezierpath caanimation