Я нахожусь в процессе обучения, у меня есть этот конкретный код, потому что всякий раз, когда мы нажимаем на текстовое поле или текстовое представление, экран перемещается вверх, и когда мы переставляем клавиатуру, экран возвращается в исходное положение, и он прекрасно работает как для альбомной, так и для портретной ориентации.Режим
В чем проблема.Первоначально это было в портретном режиме, когда мы нажимаем на текстовое поле или текстовое представление, экран поднимается и отображается клавиатура, теперь, когда я поворачиваюсь в горизонтальную ориентацию и сдвигаю клавиатуру, экран опускается вниз, и то же самое происходит и наоборот..
- (void)animateTextField:(UITextField*)textField textView:(UITextView *)textView up:(BOOL)up{
int animatedDistance;
int moveUpValue;
if (textField) {
moveUpValue = textField.frame.origin.y+ textField.frame.size.height;
}
else {
moveUpValue = textView.frame.origin.y+ textView.frame.size.height;
}
NSLog(@"moveup%d",moveUpValue);
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
if (orientation == UIInterfaceOrientationPortrait ||
orientation == UIInterfaceOrientationPortraitUpsideDown)
{
if(textField){
animatedDistance = 216-(650-moveUpValue-5);
}
else{
animatedDistance = 216-(850-moveUpValue-5);
}
}
else
{
if(textField){
animatedDistance = 162-(505-moveUpValue-5);
}
else{
animatedDistance = 162-(750-moveUpValue-5);
}
}
NSLog(@"animated%d",animatedDistance);
if(animatedDistance>0)
{
const int movementDistance = animatedDistance;
const float movementDuration = 0.3f;
int movement = (up ? -movementDistance : movementDistance);
NSLog(@"movement portrait%d",movement);
[UIView beginAnimations: nil context: nil];
[UIView setAnimationBeginsFromCurrentState: YES];
[UIView setAnimationDuration: movementDuration];
scrollview.frame = CGRectOffset(scrollview.frame, 0, movement);
[UIView commitAnimations];
}
}
Я хотел бы сейчас узнать, как я могу решить эту проблему или как мы можем изменить ось Y на 0.
Пожалуйста, помогите.Заранее спасибо