最后,我想知道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时,并不总是等于我想要的。
有人建议吗?我花了一整天的时间试图弄明白这个......
答案 0 :(得分:2)
我认为通过使用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;
答案 1 :(得分:0)
您可以像这样评估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);