如何判断UITextView文本是否包装?

时间:2012-09-01 10:58:03

标签: iphone ios xcode uiview uitextview

我试图用笔划绘制一个文本块。所以做一些搜索和实验似乎是这样做的方法是子类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);

1 个答案:

答案 0 :(得分:0)

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

您还可以查看DTCoreText,这是一个允许您呈现属性文本的类。但是,模仿textviews并支持文本输入的版本需要付出代价。最后,成本可能是值得的,因为重复文本视图需要时间。