旋转设备时如何锁定背景图像?

时间:2011-11-04 09:02:51

标签: objective-c ios

我想“锁定”我的背景图像(UIImageView),这样当我旋转设备时它看起来不像是被剪裁了。它在横向视图中看起来是正确的,但不跟随旋转。

我尝试使用setAutoresizingMask进行拉伸,但结果看起来很糟糕。我已经摆弄了UIImageView的transform属性,但未能使它看起来正确。

任何指针都将不胜感激。我甚至不确定自己是否走在正确的轨道上。

2 个答案:

答案 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。如果您的图像是纵向的,则需要在条件情况下检查横向而不是纵向。