我正在开发一个涉及复杂脚本的教育应用程序,我在其中绘制不同“字母”不同颜色的部分。 UILabel
是不可能的,所以我深入研究了 Core Text,并且在CALayers
.
我没有设法做的是为我的自定义绘制文本的大小设置动画。CALayers
基本上,我在屏幕上移动的“图块”( ) 上有文字。四处走动是可以的,但现在我想放大用户按下的那些。
我的想法是尝试缓存“全分辨率”图块,然后在图像边界动画期间将其绘制为缩放。到目前为止,我已经尝试通过以下方式绘制和缓存,然后重绘这样的图块:
UIGraphicsBeginImageContext(CGSizeMake(50, 50));
CGContextRef context = UIGraphicsGetCurrentContext();
//do some drawing...
myTextImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
然后在[CALayer drawInContext:(CGContextRef)context]
,我打电话[myTextImage drawAtPoint:CGPointZero]
。
当我运行应用程序时,控制台显示<Error>: CGContextDrawImage: invalid context 0x0
. context
同时,即使在记录了该错误之后, 我也可以完美地继续以相同的方法绘制文本。
所以我有两个问题:(1)为什么这不起作用?我应该CGBitmap
改用吗?更重要的是:(2)有没有更聪明的方法来解决整体问题?也许将我的文本存储为路径,然后CAAnimation
随着封闭范围的变化以不同的比例绘制它CALayer
?