Как правильно обрабатывать повороты изображений для iphone / ipad?
У меня есть 2 изображения, одно в портретном режиме, а другое в альбомном режиме.
Как лучше всего переключать эти изображения, когда происходит поворот вида мобильного устройства?
В данный момент я просто показываю изображение портрета. А при повороте устройства в альбомный режим портретное изображение просто растягивается.
Должен ли я проверять в обработчике поворота ориентации и просто сбросить изображение на правильное ориентационное изображение (т. е. установить его вручную на основе ориентация)??
Спасибо!
1 ответ:
Я нашел три способа.Я думаю, что последний лучше
1: Авторезистив
Пример:
UIImageView *myImageView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourImage.png"]]; myImageView.frame = self.view.bounds; myImageView.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight myImageView.contentMode = UIViewContentModeScaleAspectFill; [self.view addSubview:myImageView]; [imageView release];2: CGAffineTransformMakeRotation
Пример:
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) { myImageView.transform = CGAffineTransformMakeRotation(M_PI / 2); } else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight){ myImageView.transform = CGAffineTransformMakeRotation(-M_PI / 2); } else { myImageView.transform = CGAffineTransformMakeRotation(0.0); } }3:Установите авторазмер myImageView в качестве автоматического заполнения экрана в Interface Builder
Пример:
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { if((self.interfaceOrientation == UIDeviceOrientationLandscapeLeft) || (self.interfaceOrientation == UIDeviceOrientationLandscapeRight)){ myImageView.image = [UIImage imageNamed:@"myImage-landscape.png"]; } else if((self.interfaceOrientation == UIDeviceOrientationPortrait) || (self.interfaceOrientation == UIDeviceOrientationPortraitUpsideDown)){ myImageView.image = [UIImage imageNamed:@"myImage-portrait.png"]; } }Смотрите больше решений здесь
Разработчик.решение apple здесь
Comments