ios – 当我为UIView的界限设置动画时,如何重绘UIView的子图层?

ios – 当我为UIView的界限设置动画时,如何重绘UIView的子图层?,第1张

概述我有一个带有几个自定义绘制子层的UIView(一些带有CAShapeLayer掩码的CAGradientLayers等).我正在使用UIView动画方法来动画它的边界(增加它的宽度和高度). [UIView animateWithDuration:2 delay:0 options:UIViewAnimationOptionCurveEaseOut|UIViewAnimationOptionAut 我有一个带有几个自定义绘制子层的UIVIEw(一些带有CAShapeLayer掩码的CAGradIEntLayers等).我正在使用UIVIEw动画方法来动画它的边界(增加它的宽度和高度).
[UIVIEw animateWithDuration:2 delay:0 options:UIVIEwAnimationoptionCurveEaSEOut|UIVIEwAnimationoptionautoreverse|UIVIEwAnimationoptionRepeat animations:^{    CGRect bounds = myVIEw.bounds;    bounds.size.wIDth += 20;    bounds.size.height += 20;    myVIEw.bounds = bounds;} completion:nil];

这样可以正常工作,除了子图层不会像其动画一样重新绘制.最好的方法是什么?我是否需要设置一些键值观察检测边界变化并在所有子层上调用setNeedsdisplay?

解决方法 图层不像视图一样工作.如果在父图层上调用setNeedsdisplay(如果已将needsdisplayOnBoundsChange设置为YES,则会发生这种情况),它不会影响子图层.你也需要调用setNeedsdisplay.

如果在调整父图层大小时也需要调整子图层的大小,则在父图层(或layoutSublayersOfLayer:在其委托中)中实现layoutSublayers.

总结

以上是内存溢出为你收集整理的ios – 当我为UIView的界限设置动画时,如何重绘UIView的子图层?全部内容,希望文章能够帮你解决ios – 当我为UIView的界限设置动画时,如何重绘UIView的子图层?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1107353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存