我有一个 UIImageView 作为我的应用程序的背景图像,它就像遇险的直升机一样自动旋转。问题是当方向自动旋转时,我的图像到处移动,我不喜欢它。由于它是一个简单的纹理,我认为用户更愿意让它保持原位,而不是自动旋转。我的意思是我希望图像保持全屏显示,当用户旋转手机时,图像只是旋转了 90 度,因此看起来图像在手机上是静态的,而不是应用程序的其余部分。
问问题
695 次
2 回答
1
您可以尝试willAnimateRotationToInterfaceOrientation:duration:
在视图控制器中实现该方法并沿相反方向旋转UIImageView
。
下面的代码是我想出来的,我不能保证它会起作用:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration {
CGFloat angle = M_PI/2; // Figure out the proper angle
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];
imageview.transform = CGAffineTransformMakeRotation(angle);
[UIView commitAnimations];
}
于 2010-07-05T22:30:41.317 回答
0
我建议在图像编辑软件中旋转图像并动态加载。这比弄乱角度要容易得多(而且代码也更容易阅读)。
像这样:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (toInterfaceOrientation == UIInterfaceOrientationPortrait || toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {
myBackground.image = [UIImage imageNamed:@"bg.jpg"];
} else { // landscape view
myBackground.image = [UIImage imageNamed:@"bg_landscape.jpg"];
}
}
于 2010-11-26T09:24:31.763 回答