Ввод во время анимации UITextView

Я пытаюсь создать UITextView с переменной высотой, который изменяет размер в соответствии со своим содержимым, но когда кадр изменяется в анимации изменения размера, одно или два нажатия клавиш не фиксируются в UITextView. Продолжительность анимации составляет 0,1 с, и обычно она пропускает только одну букву, когда вы печатаете довольно быстро. Однако при анимации пропущенные буквы очень последовательны. Следующий блок анимации возникает в сообщении делегата textViewDidChange::

[UIView animateWithDuration:0.1 animations:^{

    [textView setFrame:CGRectMake(...)];

}];

Я гуглил и искал на SO, но пока ничего не придумал. кто-нибудь еще сталкивался с этим?


person Jacob    schedule 27.07.2011    source источник
comment
Почему бы вам не попробовать, как это выглядит без анимации? Это может выглядеть неплохо, и как пользователь я бы обменял анимацию на то, чтобы не пропускать нажатия клавиш в любое время.   -  person EmilioPelaez    schedule 28.07.2011


Ответы (1)


По умолчанию анимация UIView отключает взаимодействие с пользователем для анимированного представления, поэтому, возможно (извините, не могу проверить это сейчас), явное включение взаимодействия с пользователем решит вашу проблему:

[UIView animateWithDuration:0.1 
        delay:0.0
        options: UIViewAnimationOptionAllowUserInteraction
        animations:^{    
            [textView setFrame:CGRectMake(...)];
        }    
        completion:^(void){}];
person Vladimir    schedule 27.07.2011
comment
Спасибо, Владимир, за невероятно оперативный ответ. Это сработало прекрасно. - person Jacob; 28.07.2011