Прямо сейчас у меня есть базовый код для перемещения текстового поля над клавиатурой, когда вы начинаете редактировать. Однако размер текстового поля зависит от устройства и ориентации. Итак, я написал грубый способ сделать это, который не остается постоянно прямо над клавиатурой, а вместо этого будет подниматься дальше, когда вы его поворачиваете, и поэтому он не выглядит так профессионально, как мне хотелось бы.
Основной смысл моего вопроса заключается в том, существует ли логика для получения размера клавиатуры на основе устройства и ориентации и автоматического использования этого значения и, надеюсь, быстрее, чем это.
Если это лучший способ, пожалуйста, дайте мне знать. В противном случае просьба предоставить информацию. Вот код, который у меня есть. (Это просто код перехода вверх, а не код перехода вниз, чтобы не занимать слишком много места)
- (void)textFieldDidBeginEditing:(UITextField *)textField {
//Get Device Type
NSString *deviceType = [[UIDevice currentDevice] model];
//Animate Text Field
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:0.4];
[UIView setAnimationBeginsFromCurrentState:YES];
if ([deviceType isEqualToString:@"iPhone"]) {
//Size For iPhone
googleBar.frame = CGRectMake(googleBar.frame.origin.x - 62.0, (googleBar.frame.origin.y - 210.0), googleBar.frame.size.width + 120.0, googleBar.frame.size.height);
} else if ([deviceType isEqualToString:@"iPad"]) {
//Size for iPad
googleBar.frame = CGRectMake(googleBar.frame.origin.x - 62.0, (googleBar.frame.origin.y - 320.0), googleBar.frame.size.width + 120.0, googleBar.frame.size.height);
} else if ([deviceType isEqualToString:@"iPod touch"]) {
//Size For iPod Touch
googleBar.frame = CGRectMake(googleBar.frame.origin.x - 62.0, (googleBar.frame.origin.y - 210.0), googleBar.frame.size.width + 120.0, googleBar.frame.size.height);
}
[UIView commitAnimations];
}