Сдвиг 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:
вывести текстовое представление вперед.