1

当我更改 CATextLayer 的高度时,会从上方(或下方)进入新文本,如下图所示。我怎样才能防止这种情况?

@IBAction func Tap(sender: UIButton) {
    counter += 1
    CATransaction.begin()
    CATransaction.setAnimationDuration(8.0)
    txtLay!.frame = frameFromCounter()
    CATransaction.commit()
}

在此处输入图像描述

4

1 回答 1

1

CATextLayer通过方法绘制自身drawInContext:,因此对渲染表示的任何更改(例如更改string属性)也将修改contents图层的。在您的情况下,您正在调整导致后备存储调整大小的图层的大小,contents这会向该属性添加隐式动画。

如果您不希望动画发生,您可以使用actions字典来禁用隐式contents动画:

txtLay!.actions = ["contents" : NSNull()]

但是,在这种情况下,禁用contents动画会导致跳转,因此您最好不要更改边界CATextLayer并将其嵌入到超级层中以提供您想要的任何其他样式/布局。

于 2015-06-01T01:23:49.060 回答