视网膜显示中UIImage并置的奇怪弧度

时间:2012-07-17 08:57:41

标签: ios png openstreetmap retina-display

我的应用中有一个非常奇怪的问题,只发生在 Retina显示屏非模拟器

我使用嵌入式openstreetmaps图块(地图片段)开发了一组应用程序。

在每个应用程序中,我有很多地图(256px / 256px),我在UIScrollView中显示。 它非常适用于非视网膜设备和视网膜模拟器

问题:每个图块都以randow颜色显示最后一行像素(大部分时间都是黑色)

为了说明,我使用设备和模拟器制作了相同位置的屏幕截图。它们分为一个图片:

enter image description here

您可以看到黑色像素线不在图块之外,但在图块最后一个像素行中(导致两个屏幕没有移位)

甚至更奇怪:有时候,当瓷砖中的颜色变化很小时,像素线会采用随机元素的颜色,有时它根本不显示!

enter image description here

这里,蓝线,灰线,黑线......

编辑:

我简化了很多代码,并且故障只停留在这个2-tiles加载:

int W = 256;
int H = 256;
NSString * map1 = [[NSBundle mainBundle] pathForResource:@"test1.png" ofType:nil];
NSString * map2 = [[NSBundle mainBundle] pathForResource:@"test2.png" ofType:nil];
UIImageView * pieceOfMap1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, H*0, W, H)];
UIImageView * pieceOfMap2 = [[UIImageView alloc] initWithFrame:CGRectMake(0, H*1, W, H)];
[pieceOfMap1 setImage:[UIImage imageWithContentsOfFile:map1]];
[pieceOfMap2 setImage:[UIImage imageWithContentsOfFile:map2]];
[self.view addSubview:pieceOfMap1];
[self.view addSubview:pieceOfMap2];

我尝试使用128x128 @ 2x磁贴,但问题仍然存在! 它可以来自OpenStreetMaps图像吗?

我的两个磁贴可在此处下载:http://dl.free.fr/n08C6JIqW

1 个答案:

答案 0 :(得分:0)

好。

我只是在photoshop中打开两个测试图块,不做任何更改,然后再次保存在png中。

黑线不再出现了。

所以它来自开放的街道地图PNG图像(要获得其中一个,转到http://www.openstreetmap.org/,在地图上右clic,然后保存图像)

问题是部分解释,但现在我有2067个文件到photoshop ...

我用Google搜索了,但我发现没有任何可以解释的东西......

如果没有其他解释,我会接受我自己的答案,但如果有人给我一些理解为什么,我会很高兴。