是否可以制作动画UIView
的 CoreGraphics 内容?
说我有一个UIView
子类称为MyView
实现了drawRect:
像这样的方法:
- (void) drawRect: (CGRect) rect {
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(c, someColor);
CGContextSetLineWidth(c, someWidth);
CGContextMoveToPoint(c, leftOfMyUIView, topOfMyUIView);
CGContextAddLineToPoint(c, leftOfMyUIView, bottomOfMyUIView);
CGContextStrokePath(c);
}
换句话说 - 它在我的 UIView 子类的左侧画了一条垂直线。现在是否有一种简单的方法可以为该 UIView 提供动画效果,以便该线从视图的左侧移动到右侧?我希望它从左向右“漂移”。
需要明确的是 - 由于我不会讨论的原因,我无法移动/动画实例MyView
。我能想到的最好的解决方案是添加一个新的UIView
子类。就像是LineView extends UIView
然后使 LineView 成为我想要绘制的线条的确切尺寸,使用它自己的填充它drawRect
方法,然后添加一个实例LineView
to MyView
作为子视图。这将使我能够动画化LineView
使用动画块的对象,但实现如此简单的东西似乎过于复杂。
根据您的评论,将有数百个 LineView 实例,最好使用 CALayer 子类而不是 UIView 子类。 UIView 对象为您提供事件处理,并且在 iOS 上,每个 UIView 都拥有一个 CALayer 来处理其渲染。如果您不想/不需要对各行进行事件跟踪,那么所有这些 UIView 实例可能都是不必要的开销。您可以访问父 UIView 的图层,并根据需要添加线条子图层。
如果我正确理解你的问题,应该不需要 CoreGraphics。您可以设置线条图层的背景颜色来处理填充。或者,如果线条不直,您可以使用 CAShapeLayer 渲染线条的路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)