处理iphone / ipad图像旋转的正确方法是什么?
我有2张图片,一张是纵向模式,另一张是横向模式。 移动设备视图旋转发生时切换这些图像的最佳方法是什么?
目前我只是显示肖像图像。 当设备旋转到横向模式时,纵向图像就会被拉伸。
我应该在方向旋转处理程序内检查并简单地将图像重置为正确的方向图像(即根据方向手动设置)?
谢谢!
我找到了三种方法。我认为最后一种方式更好
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"]; } }
看到更多解决方案
developer.apple解决方案就在这里