我试图用笔划绘制一个文本块。所以做一些搜索和实验似乎是这样做的方法是子类UIView并在drawRect中用笔划绘制文本。绘图代码如下。
我设置它的方式,我使用UITextView以交互方式输入我想要的文本,然后将文本传递给用笔划绘制的UIView子类广告。
这似乎完美无缺。唯一的问题是当按下返回键(创建一个新行),或者行换行因为它对于UITextView变得太宽时,不传递此信息,因此我的renderd(描边)文本中没有新行在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);
答案 0 :(得分:0)
您必须复制uitextview的包装逻辑。询问字符串子串需要多长时间,以及它何时变长以适应它的包裹。
您还可以查看DTCoreText,这是一个允许您呈现属性文本的类。但是,模仿textviews并支持文本输入的版本需要付出代价。最后,成本可能是值得的,因为重复文本视图需要时间。