iOS的Colorwithpattern - 使用自定义图像的iPhone5(iOS Colorw

2019-08-01 09:08发布

对于我的应用程序的载入画面和启动画面,我用了两种不同的方法来适当地显示我的iPhone 3,iPhone 4和iPhone 5的图片。

对于加载屏幕,简单地增加-568h @ 2倍于你的形象,就足以支持iPhone5的。

对于闪屏,我用了一系列的(如果高度==)案件检查UIScreen边界的高度和采购适当的图像的图像视图。 很明显我这里说的-568h没有被普遍认可为iPhone 5的图像。 它仅适用于载入画面。

现在,在我的AppDelegate,我设置一个背景图像。 我所有的子视图有一个透明的背景,所以他们应该通过显示背景图像。 但是,我有最麻烦的在这里设立的背景图像。

只需在“Background.png”通过添加-568h @ 2X的文件名不工作的结束。 它会做非视网膜和3.5寸Retina显示屏,但不会拿起4“”显示。

即:

self.window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Background.png"]];

如果我用上面的代码片段中,iPhone4的图片是用来代替iPhone5的图片,这不是我想要的。

我移动到试图做同样的事情,因为我与溅射屏幕一样。 我有一堆的,如果情况:

CGFloat height = [UIScreen mainScreen].currentMode.size.height;

if ( height == 1136 )
{
     //Choose image here
}
else if (height == 960)
{
     //Choose image here
}
else if (height == 480)
{
     //Choose image here
}
self.window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:chosenImage]];

但colorWithPatternImage函数认为,chosenImage推移1点= 1个像素。 所以,我结束了一个非视网膜图像试图以适合iPhone 5的屏幕。 它看起来什么样exaclty? 貌似只有我想显示整个iPhone 5的屏幕上的图像的左上方象限。 它看起来像没有应用视网膜缩放。

我需要在iPhone上承认,我有一个视网膜友好的iPhone 5的图片作为背景。 我该怎么做呢?

Answer 1:

我发现这个代码在这里 ,也许它可以帮助你:

UIImage *tmpImage = [UIImage imageNamed:@"background-568h@2x.png"];
UIImage *backgroundImage = [UIImage imageWithCGImage:[tmpImage CGImage]
                                               scale:2.0
                                         orientation:UIImageOrientationUp];
self.window.backgroundColor = [UIColor colorWithPatternImage:backgroundImage];


文章来源: iOS Colorwithpattern - using a custom iPhone5 image