Sam*_*Sam 16 iphone core-animation objective-c calayer bounds
我想知道如何动画CALayer的边界,以便在每个边界变化时,层调用drawInContext:
.我在我的CALayer子类上尝试了以下两种方法:
needsDisplayOnBoundsChange
为YES
YES
+ (BOOL)needsDisplayForKey:(NSString*)key
为bounds
键都没有工作.CALayer似乎决定使用图层的原始内容,并根据contentsGravity
(我认为是性能)来缩放它们.这是他们的解决方法还是我错过了一些明显的东西?
编辑:顺便说一下,我注意到我的自定义CALayer
子类没有调用initWithLayer:
创建presentationLayer
- 怪异.
先谢谢你,山姆
我不确定设置 viewFlags 是否有效。第二种解决方案肯定行不通:
默认实现返回 NO。子类应该 * 为超类定义的属性调用 super。(例如,* 不要尝试为 CALayer 实现的属性返回 YES,* 这样做将产生未定义的结果。)
您需要将视图的内容模式设置为 UIViewContentModeRedraw:
UIViewContentModeRedraw, //redraw on bounds change (calls -setNeedsDisplay)
Run Code Online (Sandbox Code Playgroud)
查看Apple 关于使用 CALayer 提供内容的文档。他们建议使用 CALayer 的委托属性而不是子类,这可能比您现在尝试的容易得多。
归档时间: |
|
查看次数: |
4345 次 |
最近记录: |