UIView旋转的视觉工件与平铺的背景图像

时间:2010-06-13 09:29:18

标签: uiview background rotation design-patterns tile

我有一个带有标准UIViewController / UIView设置的iPad应用程序 - 允许所有旋转。 UIView绘制一些平铺图像作为背景(图块为256 * 256像素):

- (void)drawRect:(CGRect)rect
{
    [[UIImage imageNamed: @"Background.png"] drawAsPatternInRect: rect];
}

当我转动iPad时,我可以看到在旋转过程中原始方向的图像模式缩放以适应新的方向。然后 - 在动画完成后立即 - 视图重绘其背景图案,其最终配置是未缩放的。从缩放模式切换到非缩放模式看起来有点难看。

有没有办法绕过(或隐藏)背景图案的这种拉伸?

2 个答案:

答案 0 :(得分:2)

为什么不使用图案图像作为背景“颜色”?这会自动生成平铺图案,并避免使用drawRect()进行任何特技。例如:

UIImage *backgroundTile = [UIImage imageNamed: @"Background.png"];
UIColor *backgroundPattern = [[UIColor alloc] initWithPatternImage:backgroundTile];
[myView setBackgroundColor:backgroundPattern];
[backgroundPattern release];

答案 1 :(得分:2)

简单地说,

[myView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@“Background.png”]]];