如何在 UITextView 中获取文本矩形

Posted

技术标签:

【中文标题】如何在 UITextView 中获取文本矩形【英文标题】:How to get text rect in UITextView 【发布时间】:2014-04-18 12:21:31 【问题描述】:

我遇到了 UItextView 中文本的获取框架,我正在使用此代码`

UITextPosition *Pos2 = [textView positionFromPosition: drawTextView.endOfDocument offset: 0];
    UITextPosition *Pos1 = [textView positionFromPosition: drawTextView.endOfDocument offset: -[textView.text length]];

    UITextRange *range = [textView textRangeFromPosition:Pos1 toPosition:Pos2];

    CGRect result1 = [textView firstRectForRange:(UITextRange *)range ];

but it returns meorigin=(x=+Inf, y=+Inf) size=(width=0, height=0)`

【问题讨论】:

【参考方案1】:

检查一下:

CGRect size = [myTextView.text boundingRectWithSize:CGSizeMake(textView.frame.size.width, Max_height)
                                                     options:NSStringDrawingUsesLineFragmentOrigin
                                                  attributes:attributesDictionary
                                                     context:nil];
NSLog(@"height : %@" size.height);

【讨论】:

【参考方案2】:

您可以使用以下代码获取它

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
   
    CGRect rc = [textView bounds];
    rc = [textView convertRect:rc toView:superViewOfTextView];
    .
    .
    .
    //Put your logic.


对于获取文本宽度和高度使用

CGFloat width = [self.txtView.text length];
CGFloat height = [self.txtView.text sizeWithFont:setFontWithSize constrainedToSize:self.txtView.frame.size.width lineBreakMode:NSLineBreakByWordWrapping];   

【讨论】:

我需要 UItextView 中文本的框架矩形。 你能告诉我如何获得 x 和 y。 @Suyash - 检查这个问题***.com/questions/16909843/…

以上是关于如何在 UITextView 中获取文本矩形的主要内容,如果未能解决你的问题,请参考以下文章

可变高度 UITextView

Swift:在 UITextView 中使用占位符文本禁用空白/换行符文本的栏按钮

从UITextView创建PDF

如何从自定义 UITextView 单元中获取文本?

iOS 在UITextView中查找某个Range所在的Rect

如何在比 iOS 6.0 更早的 iOS 版本中从 UITextRange 获取矩形