Animation 斯威夫特游乐场的卡巴斯基化
在WWDC的“Swift Playgrounds”视频中,我们一直在尝试在Swift操场上实时观看动画。我试着做一个Animation 斯威夫特游乐场的卡巴斯基化,animation,swift-playground,Animation,Swift Playground,在WWDC的“Swift Playgrounds”视频中,我们一直在尝试在Swift操场上实时观看动画。我试着做一个ui视图。animateWithDuration,但运气不好,所以我现在试着做一个CABasicaAnimation,因为这似乎是演示中使用的。我已经摆脱了许多令人困惑的错误,并且已经导入了适当的框架,但是我仍然没有运气让我的小圈子做任何事情,只是静静地坐在我的XCPShowView的中心。这是我的密码: import Foundation import XCPlaygroun
ui视图。animateWithDuration
,但运气不好,所以我现在试着做一个CABasicaAnimation,因为这似乎是演示中使用的。我已经摆脱了许多令人困惑的错误,并且已经导入了适当的框架,但是我仍然没有运气让我的小圈子做任何事情,只是静静地坐在我的XCPShowView
的中心。这是我的密码:
import Foundation
import XCPlayground
import UIKit
import QuartzCore
//Circle Button
class timerButtonGraphics: UIView {
override func drawRect(rect: CGRect) {
let colorGreen = UIColor(red: 0.310, green: 0.725, blue: 0.624, alpha: 1.000)
let colorRed = UIColor(red: 241/255, green: 93/255, blue: 79/255, alpha: 100)
var bounds = self.bounds
var center = CGPoint()
center.x = bounds.origin.x + bounds.size.width / 2
center.y = bounds.origin.y + bounds.size.height / 2
var radius = 61
var path:UIBezierPath = UIBezierPath()
path.addArcWithCenter(center, radius: CGFloat(radius), startAngle: CGFloat(0.0), endAngle: CGFloat(Float(M_PI) * 2.0), clockwise: true)
path.strokeWithBlendMode(kCGBlendModeNormal, alpha: 100)
path.lineWidth = 5
colorGreen.setStroke()
path.stroke()
//Define the animation here
var anim = CABasicAnimation()
anim.keyPath = "scale.x"
anim.fromValue = 1
anim.toValue = 100
anim.delegate = self
self.layer.addAnimation(anim, forKey: nil)
}
}
var test = timerButtonGraphics(frame: CGRect(x: 0, y: 0, width: 400, height: 400))
test.setTranslatesAutoresizingMaskIntoConstraints(true)
XCPShowView("Circle Animation", test)`
解决方案的第一部分是启用在完整模拟器中运行选项。请参阅以了解逐步的步骤 解决方案的第二部分是在容器视图中包含动画视图,例如:
let container = UIView(frame: CGRect(x: 0, y: 0, width: 400, height: 400))
XCPShowView("Circle Animation", container)
let test = timerButtonGraphics(frame: CGRect(x: 198, y: 0, width: 4, height: 400))
container.addSubview(test)
解决方案的第三部分是纠正动画。关键路径应该是transform.scale.x
而不是scale.x
,您需要添加持续时间,例如:
anim.keyPath = "transform.scale.x"
anim.duration = 5
然后,您应该能够在操场上查看动画