如何将文本绘制到子视图中?

时间:2009-05-31 23:25:40

标签: objective-c iphone

我想使用UIView调用将文本绘制到drawInRect:withFont:lineBreakMode的子视图中,但仅在当前上下文中运行。

是否可以从当前视图中将文本绘制到子视图中?

子视图是一个通用的UIView实例,如果我可以避免它,我真的不想为此创建一个新的UIView派生类。

3 个答案:

答案 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子类没有任何问题。