【发布时间】:2015-04-27 07:06:15
【问题描述】:
我正在尝试在我的图层转换时追踪帧中的变化。动画是可见的,但不知何故,我的 frame 属性在动画之前和之后设置为 (0,0,0,0)。我没有明确设置任何框架属性,但我假设它是基于 BezierPath 设置的,因为你知道......图层是可见的并且正在工作,所以它的框架不应该是 (0,0,0,0)。那到底是怎么回事?
//in viewDidLoad()
var shapeLayer: CAShapeLayer!
shapeLayer = CAShapeLayer()
shapeLayer.lineWidth = 2
shapeLayer.strokeColor = UIColor.redColor().CGColor
shapeLayer.fillColor = UIColor(red: 0.1, green: 0.3, blue: 0.6, alpha: 0.3).CGColor
shapeLayer.path = UIBezierPath(ovalInRect: CGRectMake(40, 40, 100, 100)).CGPath
println("\(shapeLayer.frame)")
shapeLayer.contentsScale = UIScreen.mainScreen().scale
view.layer.addSublayer(shapeLayer)
//when button is pressed
shapeLayer.transform = CATransform3DMakeScale(2, 1, 3)
println("\(shapeLayer.frame)")
【问题讨论】: