获取UITextView上特定行的文本
最终,我想知道UITextView中最后一个字符的位置。 我能够通过使用以下方法找出y位置:
CGSize size = [textView.text sizeWithFont:textView.font constrainedToSize:CGSizeMake(textView.frame.size.width-16,10000)lineBreakMode:UILineBreakModeClip];
但是为了得到x的位置,我需要从textview的最后一行获取文本。 我试图从textView.text中删除一个字符,直到size.height改变,以实现这一效果,但我意识到,并不总是等于我想要的,当linebreak被考虑到。
任何build议任何人? 我已经花了整整一天的时间来试图找出这一个…
我想我find了一个解决scheme,通过使用caretRectForPosition获取光标在textview中的像素位置。
// move cursor to the end of the text textView.selectedRange = NSMakeRange([textView.text length], 0); CGPoint cursorPosition = [textView caretRectForPosition:textView.selectedTextRange.start].origin;
你可以像这样在uitextview或uitextfield中评估文本大小
UIFont * myFont = [UIFont fontWithName:@“Gill Sans”size:19]; CGSize textSize = [@“your text”sizeWithFont:myFont constrainedToSize:CGSizeMake(textFiled.frame.size.width,textFiled.frame.size.height)lineBreakMode:UILineBreakModeWordWrap]; NSlog(@“this is your text size W =%f H =%f”,textSize.width,textSize.height);