在UIImage并列在视网膜显示的奇怪arctefact
我的应用程序中有一个很奇怪的问题,只发生在Retina显示屏上,而不是模拟器 。
我开发了一组embedded式openstreetmaps图块(地图块)的应用程序。
在每个应用程序中,我有很多地图(256像素/ 256像素),我显示在一个UIScrollView。 它非常适用于非视网膜设备和视网膜模拟器 。
问题在于,每个瓦片都以最后一行像素呈现为随机颜色(大部分时间是黑色)
为了说明,我使用设备和模拟器制作了同一地点的屏幕截图。 他们被分组在一张照片中:
你可以看到,黑色的像素线不是在瓷砖外,而是在瓷砖的最后一个像素线 (两个屏幕没有变化)
更奇怪的是:有时候,在瓦片中颜色变化很小的时候,像素线是随机元素的颜色,有时根本不会出现!
在这里,蓝线,灰线,黑线…..
编辑:
我简化了很多代码,并且只有这个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];
我尝试了128×128 @ 2x瓷砖,但问题仍然存在!
它可以来自OpenStreetMaps图像?
我的两个瓷砖可以在这里下载: http : //dl.free.fr/n08C6JIqW
好的。
我只是在Photoshop中打开两个testing瓷砖, 没有改变 ,然后再次保存在PNG中。
黑线不再出现。
所以它来自开放的街道地图PNG图像(获取其中的一个,在地图上右键点击,然后保存图像)
问题部分解释 ,但现在我有2067年的文件到Photoshop …
我GOOGLE了,但我什么也没有find解释的东西
如果没有其他的解释,我会接受我自己的答案,但如果有人给我一些理解为什么 ,我会很高兴。