0

我正在尝试用笔划绘制一块文本。所以做一些搜索和实验似乎这样做的方法是继承UIView并在drawRect中用笔画绘制文本。绘图代码如下。

我设置它的方式是,我使用 UITextView 以交互方式输入我想要的文本,然后将文本传递给用笔划绘制的 UIView 子类广告。

这似乎工作得很好。唯一的问题是当按下回车键(创建一个新行),或者换行因为它变得对于 UITextView 来说太宽,这个信息没有传递,所以在我绘制的渲染(描边)文本中没有新行在 UIView 子类中。

有什么帮助吗?

绘制代码(注意 theText 是传递 UITextView 文本的属性):

    UIFont *font =  [UIFont fontWithName:@"Arial" size:fontSize];
    CGPoint point = CGPointMake(0,0);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0);
    CGContextSetRGBStrokeColor(context, 0.0, 0.0, 0.0, 1.0);
    CGContextSetLineWidth(context, 4.0);
    CGContextSetTextDrawingMode(context, kCGTextFillStroke);
    CGContextSaveGState(context);
    [theText drawAtPoint:point withFont:font];
    CGContextRestoreGState(context);
4

1 回答 1

0

您必须复制 uitextview 的包装逻辑。询问字符串子字符串需要多长时间,以及它何时长到适合它的包装。

您还可以查看 DTCoreText,这是一个可让您呈现属性文本的类。然而,模仿文本视图并支持文本输入的版本需要一些成本。最后,成本可能是值得的,因为复制 textview 需要时间。

于 2012-09-01T11:12:05.173 回答