当我更改CATextLayer的高度时,会从上方(或下方)进入新文本,如下图所示。我怎么能阻止这个?
@IBAction func Tap(sender: UIButton) {
counter += 1
CATransaction.begin()
CATransaction.setAnimationDuration(8.0)
txtLay!.frame = frameFromCounter()
CATransaction.commit()
}
答案 0 :(得分:1)
CATextLayer
通过drawInContext:
方法绘制自己,因此对渲染表示的任何更改(例如更改string
属性)也会修改图层的contents
。在您的情况下,您需要调整图层大小,从而导致支持商店调整大小,这会更改contents
,从而为该属性添加隐式动画。
如果您不希望动画发生,可以使用actions
字典禁用隐式contents
动画:
txtLay!.actions = ["contents" : NSNull()]
然而,在这种情况下禁用contents
动画会导致跳跃,因此您可能最好不要更改CATextLayer
的界限,只是将其嵌入到超级层中以提供任何你想要的额外造型/布局。