iOS - iPad 背景图像被截短
Posted
技术标签:
【中文标题】iOS - iPad 背景图像被截短【英文标题】:iOS - iPad background image is getting cut off short 【发布时间】:2012-09-21 13:45:24 【问题描述】:我有一个 iPad/iPhone 应用程序,iPhone 背景看起来不错,但是当我为 iPad 版本使用相同的图像时,它看起来好像在页面中间被截断了。
这是一个屏幕截图:
图片名为 building.png,我有 2 个版本,用于 iPad 的 building.png 和 building@2x。
我让图像在后台渲染的方式来自如下代码:
- (void)viewDidAppear:(BOOL)animated
UIImage *image = [UIImage imageNamed:@"building"];
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
对我来说,解决这个图像在 iPad 视图上被截断的问题的最佳方法是什么?
谢谢!
【问题讨论】:
您在检查您使用的设备吗?然后加载适当的图像? @own gerig 实际上我不确定。我认为它可能没有加载 ipad 图像。但我不确定如何检查。 if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) //加载 iphone 图片 else //加载 ipad 图片 【参考方案1】:我认为colorWithPatternImage
是您的图像被这样剪切的原因。为什么不创建一个 UIImageView
来包含您的图像,将其添加到您的视图中并调用 [self.view sendSubviewToBack:yourImageView]
?
编辑 这是你的代码 sn-p
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"building"]];
imgView.frame = self.view.bounds; // to set the frame to your view's size
[self.view addSubview:imgView];
[self.view sendSubviewToBack:imgView];
【讨论】:
嗯,很有趣。没有意识到它可能是 colorWithPatternImage ....您能否发布 sn-p 看起来像您建议的方式?我没有太多处理图像的经验,所以我有点困惑。谢谢! 我刚试过这个: UIImageView *imgView = [[UIImageView alloc] initWithImage:@"building"]; imgView.frame = self.view.bounds; // 将框架设置为视图的大小 [self.view addSubview:imgView]; [self.view sendSubviewToBack:imgView];这并不完全奏效。另外,在第一行我收到一个警告,说我的 NSString 和图像类型不兼容 您必须传递图像对象而不是字符串...我为您更改了代码 谢谢,但在第二行,它给出了有关 img.frame 引用的错误 - 你从哪里得到那个对象? 那行得通...是的,我认为这是一个错字,但我只是想确认一下.. 谢谢 :)【参考方案2】:这对我有用 -
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]];
imgView.frame = [[UIScreen mainScreen] bounds]; // 将框架设置为视图的大小
[self.view addSubview:imgView]; [self.view sendSubviewToBack:imgView];
【讨论】:
以上是关于iOS - iPad 背景图像被截短的主要内容,如果未能解决你的问题,请参考以下文章