2013-10-11 2 views
2

У меня есть UITextView в моем приложении. Мне нужно динамически изменять его содержимое при каждом добавлении новой строки. Код ниже отлично работает на IOS 6 и более ранние версии, но не на прошивке 7.UITextView contentOffset не работает на iOS 7

TextViewText.text = [TextViewText.text stringByReplacingCharactersInRange:RecentWordRange withString:string]; 
    newStringLen = string.length; 
    [TextViewText setSelectedRange: NSMakeRange(RecentWordRange.location+string.length, 0)]; 
    [TextViewText setContentOffset: CGPointMake(0,0) animated:NO]; 
    [TextViewText setContentOffset:contentOffset animated:YES]; 

что изменение IOS7 для setContentOffset?

+0

Что такое переменная contentOffset, содержащая? –

+0

contentOffset = TextViewText.contentOffset; –

+0

Это ошибка iOS 7. Мое обходное решение здесь, и оно работает: http://stackoverflow.com/questions/19124037/scroll-to-bottom-of-uitextview-erratic-in-ios-7-with-many-updates/19339716#19339716 – RawMean

ответ

2

Использование UITextView-х textContainerInset для того, что бы insets и использовать (UIEdgeInsets) contentInset для того, что бы (CGPoint) contentOffset.

Не знаю, почему кто-то решил, что это лучший способ справиться с UITextView offsetting, но это работает для меня.

Также обратите внимание, что есть странная ошибка, которая не принимает вставки в текстовом элементе, если нет правого и левого смещений. Поэтому убедитесь, что left/right UIEdgeInsets больше 1.

0

Недавно я разрешил аналогичную проблему в iOS 8. Я заменил текст в текстовом виде, и он прыгнул. Использование метода UITextRange помогло.

UITextRange *RecentWordRange = TextViewText.selectedTextRange; 
[TextViewText replaceRange:RecentWordRange withText:string]; 
Смежные вопросы