我想“锁定”我的背景图像(UIImageView),这样当我旋转设备时它看起来不像是被剪裁了。它在横向视图中看起来是正确的,但不跟随旋转。
我尝试使用setAutoresizingMask进行拉伸,但结果看起来很糟糕。我已经摆弄了UIImageView的transform属性,但未能使它看起来正确。
任何指针都将不胜感激。我甚至不确定自己是否走在正确的轨道上。
答案 0 :(得分:2)
您可以为纵向/横向方向设置不同的图像,并在willRotate回调上使用UIView动画在两者之间切换。我试过了,结果很顺利。
答案 1 :(得分:0)
好的,我设法使用以下代码使其工作:
- (void)viewDidLoad
{
[super viewDidLoad];
...
UIColor *color = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"background.png"]];
self.background.backgroundColor = color;
[color release];
...
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration {
float angle = (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) ? M_PI_2 : 0.0;
self.background.transform = CGAffineTransformMakeRotation(angle);
}
请记住,background~ipad.png是1024x768,默认为landscape。如果您的图像是纵向的,则需要在条件情况下检查横向而不是纵向。