Как я могу определить размер поля UITextView?
Я пытаюсь определить размер текстового представления вплоть до курсора, обрезая весь текст после курсора, а затем используя NSString sizeWithFont
метод, вот так:
NSString *string = [myTextView.text substringToIndex:myTextView.selectedRange.location];
CGSize size = [string sizeWithFont:myTextView.font constrainedToSize:myTextView.frame.size lineBreakMode:UILineBreakModeWordWrap];
К сожалению, это никогда не возвращает совершенно правильный размер, возможно, потому что текст имеет поля, поэтому его фактическая ширина меньше ширины UITextView (спасибо ответчикам этого вопроса за это).
Поэтому мне нужно определить размер полей и вычесть их из размера UITextView, чтобы получить фактический размер текстовой области. Кто-нибудь знает как это сделать?
2 ответа
К сожалению, похоже, что ответ заключается в том, что в UITextView нет поля - вам просто нужно смоделировать его, поместив представление позади него и сузив UITextView. Если вам нужен фон для прокрутки текста, вы можете прослушать scrollViewDidScroll:
,
Я бы предложил
CGSize tSize = myTextView.frame.size;
tSize.width -= 2 * myTextView.contentInset.left;
tSize.height -= 2 * myTextView.contentInset.top;
CGSize size = [string sizeWithFont:myTextView.font constrainedToSize:tSize lineBreakMode:UILineBreakModeWordWrap];