У меня есть приложение, которое учитывает детали клиента, созданные для iPad. Когда пользователь забирает UITextField
в нижнюю половину ViewController
, frame
программно сдвигается вверх, чтобы поля не были скрыты за клавиатурой. (Я попытался реализовать UIScrollView
, но просто не могу заставить его работать.) Небольшая проблема, с которой я столкнулся сейчас, - это то, когда сдвигается frame
, вы можете смутно видеть черный за ним. Это не большая проблема, потому что я изменил время анимации, и черный фон едва заметен, но у меня есть ощущение, что есть более элегантное решение.Изменить цвет фона BEHIND Frame ViewController (при изменении frame.origin)?
Вот мой код, чтобы сместить frame
:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
// Animate frame up if lower textfields are tapped
if (([textField isEqual:_emailField]) || ([textField isEqual:_dobField]) || ([textField isEqual:_niNumField])) {
[UIView beginAnimations:nil
context:NULL];
[UIView setAnimationDuration:0.35f];
CGRect frame = self.view.frame;
frame.origin.y = -210;
[self.view setFrame:frame];
[UIView commitAnimations];
} else {
// Return frame to original position if other textfields are tapped
[self dismissKeyboard];
}
return YES;
}
- (void)dismissKeyboard {
[UIView beginAnimations:nil
context:NULL];
[UIView setAnimationDuration:0.15f];
CGRect frame = self.view.frame;
frame.origin.y = 0;
[self.view setFrame:frame];
[UIView commitAnimations];
}
Вот краткий скриншот того, что я пытаюсь описать. Левое изображение - ViewController
нормально, правый снимок, когда frame
был сдвинут вверх. Вы можете видеть (неопределенно) почти в соответствии со второй строкой символов, где останавливается frame
.
Я понимаю, что это не похоже на вопрос, потому что он едва виден на всех, но я должен был ускорить анимацию сокрытия клавиатуры или иначе frame
тащит позади и черный фон становится видимый. Мне интересно: есть ли способ изменить этот цвет? Или это то, к чему у нас нет доступа? Если кто-то может предложить более элегантный метод для того, что я пытаюсь сделать, я бы с радостью принял лучшее решение. Заранее спасибо.
Используя ваш код, я смог успешно изменить цвет 'window' на белый. Это решает проблему, спасибо! Я снова рассмотрю 'UIScrollView' и попытаюсь его реализовать. Спасибо за вашу помощь :) – rosshump