нежелательное пространство прокрутки в UITextView

У меня есть UITextView, охватывающий всю настройку контроллера представления в раскадровке. Существуют ограничения на верхнее руководство по макету, нижнее руководство по макету, ведущее поле и конечное поле.

Я зарегистрировался в уведомлениях клавиатуры, чтобы настроить вставки содержимого следующим образом:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardAppeared:)
                                             name:UIKeyboardDidShowNotification
                                           object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardDisappeared:)
                                             name:UIKeyboardDidHideNotification
                                           object:nil];

Появилась реализация клавиатуры:

- (void)keyboardAppeared:(NSNotification *)notification {
    NSDictionary *notificationUserInfo = [notification userInfo];
    CGRect keyboardRect = [[notificationUserInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
    self.textView.contentInsets = UIEdgeInsetsMake(0, 0, keyboardRect.heignt, 0);
    self.textView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, keyboardRect.height, 0);
}

KeyboardDisappeared реализация:

- (void)keyboardDisappeared:(NSNotification *) {
    self.textView.contentInsets = UIEdgeInsetsZero;
    self.textView.scrollIndicatorInsets = UIEdgeInsetsZero;
}

Проблема здесь в том, что когда появляется клавиатура, в textView появляется нежелательная прокрутка, если текст textView меньше. Нежелательная прокрутка не появляется, когда размер текста превышает высоту textView.

Пожалуйста помоги!


person Tarun    schedule 25.11.2014    source источник
comment
см. этот ответ stackoverflow.com/questions/25782352/   -  person Deepesh    schedule 25.11.2014
comment
Ссылка не помогла. Я получаю дополнительное место в конце текста. Я уже переключил автоматическиAdjustScrollViewInsets на NO.   -  person Tarun    schedule 25.11.2014


Ответы (1)


Решил это. Проблема возникает очень редко, но если кто-то застрял, вот решение.

Раньше я устанавливал текст textView в viewDidLoad следующим образом:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.textView setScrollEnabled:YES];
    [self.textView setText:#-some text-#];
    [self.textView setScrollEnabled:NO];
}

Я отключил прокрутку, чтобы текстовое представление не прокручивалось вниз при установке текста. И это создало проблему дополнительной прокрутки. (Я не знаю почему)

Я использовал это решение для решения проблемы: https://stackoverflow.com/a/3287419

person Tarun    schedule 25.11.2014