Как установить ось Y на 0, если экран находится за пределами оригинального экрана или ниже экрана - в iPad - PullRequest
1 голос
/ 23 ноября 2011

Я нахожусь в процессе обучения, у меня есть этот конкретный код, потому что всякий раз, когда мы нажимаем на текстовое поле или текстовое представление, экран перемещается вверх, и когда мы переставляем клавиатуру, экран возвращается в исходное положение, и он прекрасно работает как для альбомной, так и для портретной ориентации.Режим

В чем проблема.Первоначально это было в портретном режиме, когда мы нажимаем на текстовое поле или текстовое представление, экран поднимается и отображается клавиатура, теперь, когда я поворачиваюсь в горизонтальную ориентацию и сдвигаю клавиатуру, экран опускается вниз, и то же самое происходит и наоборот..

    - (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.

Пожалуйста, помогите.Заранее спасибо

1 Ответ

1 голос
/ 09 января 2012

проверка настроек animatedDistance при изменении ориентации устройства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...