我想使用UIView
调用将文本绘制到drawInRect:withFont:lineBreakMode
的子视图中,但仅在当前上下文中运行。
是否可以从当前视图中将文本绘制到子视图中?
子视图是一个通用的UIView
实例,如果我可以避免它,我真的不想为此创建一个新的UIView
派生类。
答案 0 :(得分:1)
不,如果你打算用上下文做某事,你必须在那个视图中-drawRect:。你总是可以让你的子视图成为一个覆盖-drawRect:的UIView子类来显示你想要的文本......但是那时你就是在重新发明UILabel。
答案 1 :(得分:1)
一种选择是将CALayer添加到视图的图层,而不是向视图添加UIView。 CALayer具有delegate
属性,您可以将任何对象分配给该属性。 CALayer致电:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
<{1>}上的,你可以采取以下措施:
delegate
答案 2 :(得分:0)
不,你不能做你所描述的。子类化UIView正是你应该用于此的方法 - 创建一个只有简单-drawRect:
方法的UIView子类没有任何问题。