当我更改 CATextLayer 的高度时,会从上方(或下方)进入新文本,如下图所示。我怎样才能防止这种情况?
@IBAction func Tap(sender: UIButton) {
counter += 1
CATransaction.begin()
CATransaction.setAnimationDuration(8.0)
txtLay!.frame = frameFromCounter()
CATransaction.commit()
}
当我更改 CATextLayer 的高度时,会从上方(或下方)进入新文本,如下图所示。我怎样才能防止这种情况?
@IBAction func Tap(sender: UIButton) {
counter += 1
CATransaction.begin()
CATransaction.setAnimationDuration(8.0)
txtLay!.frame = frameFromCounter()
CATransaction.commit()
}
CATextLayer通过方法绘制自身drawInContext:,因此对渲染表示的任何更改(例如更改string属性)也将修改contents图层的。在您的情况下,您正在调整导致后备存储调整大小的图层的大小,contents这会向该属性添加隐式动画。
如果您不希望动画发生,您可以使用actions字典来禁用隐式contents动画:
txtLay!.actions = ["contents" : NSNull()]
但是,在这种情况下,禁用contents动画会导致跳转,因此您最好不要更改边界CATextLayer并将其嵌入到超级层中以提供您想要的任何其他样式/布局。