[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的子图层?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)