我的应用程序中有一个非常奇怪的问题,它只发生在Retina 显示器上而不是模拟器上。
我开发了一组带有嵌入式openstreetmaps 瓦片(地图)的应用程序。
在每个应用程序中,我都有很多显示在 UIScrollView 中的地图 (256px/256px)。它在非视网膜设备和视网膜模拟器上完美运行。
问题:每个图块都以随机颜色的最后一行像素出现(大多数时候是黑色)
为了说明,我用设备和模拟器对同一个地方进行了截图。它们组合在一张图片中:
可以看到黑色的像素线不是在图块外,而是在图块的最后一个像素线(导致两个屏幕之间没有移位)
甚至更奇怪的是:有时,当瓷砖中的颜色变化很小时,像素线会采用随机元素的颜色,有时根本不会出现!
这里,蓝线、灰线、黑线……
编辑 :
我简化了很多代码,故障只存在于这 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