Сдвиг UIView во время редактирования UITextView

У меня есть большое поле для комментариев, которое является UITextView, Поскольку появляется клавиатура, а UITextField составляет почти половину всего представления, пользователи едва ли могут видеть поле. То, что я хочу сделать, это когда появляется клавиатура (т.е. UITextView редактирует) Я хочу сместить вид вверх, чтобы он был полностью видимым и удобным для пользователя.

2 ответа

Решение

Просматривая сложные и бесполезные коды, я нашел быстрое решение здесь:

/questions/12408497/peremeschenie-uiview-vverh-kogda-pokazana-klaviatura/12408507#12408507

Этот ответ здесь очень осторожно обрабатывает эту ситуацию, благодаря Дэну Рэю

Небольшая заметка относительно: вызов этой функции не совсем привлек меня

-(void)scrollToView:(UIView *)view {
    CGRect theFrame = view.frame;
    float y = theFrame.origin.y - 15;
    y -= (y/1.7);
    [self scrollToY:-y]; 
}

поэтому я отредактировал эту функцию:

-(void)scrollToView:(UIView *)view withCoefficient:(CGFloat)coeff
{
    CGRect theFrame = view.frame;
    float y = theFrame.origin.y;
    y -= (y/coeff);
    [self scrollToY:-y];
}

в это. Таким образом, я могу попробовать, какой коэффициент для скольжения мой основной вид является правильным. Вместо 1.7, 2 сделали очарование для меня. Пожалуйста, перейдите по ссылке для полного решения. Также обратите внимание, что вы можете применить то же самое для вашего UINavigationController а также, если существует;

-(void)textViewDidBeginEditing:(UITextView *)textView
{
    [self.view scrollToView:textView withCoefficient:2.0];
    [self.navigationController.view scrollToView:textView withCoefficient:2.0];
}

Вы можете использовать

UITextViewTextDidBeginEditing

переставить элементы на ваш взгляд. И использовать

– bringSubviewToFront:

вывести текстовое представление вперед.

Другие вопросы по тегам