我正在使用Apple PhotoScroller示例中的TilingView来平铺一些图像。这适用于我的大多数图像,但我有一些得到奇怪的比例值。我将细节级别设置为4.我的图像都按不同的值缩放,100,50,25,12.5比例,然后在这些级别平铺256x256。
在TilingView drawRect方法中,我在这里得到的比例必须是4个值中的一个,通常是1.0,0.50,0.25,0.125。因为当我得到一个奇怪的比例值时,我根据这些比例值关闭我的图像,它会中断并且无法加载图像。例如,我有一个图像,在.50比例,我得到的实际值是0.499798。
这里有什么想法吗?如果我告诉CATiledLayer有4个细节级别,我怎么能得到这些奇怪的值呢?
CGFloat scale = CGContextGetCTM(context).a;
NSLog(@"scale = %f",scale);
CATiledLayer *tiledLayer = (CATiledLayer *)[self layer];
CGSize tileSize = tiledLayer.tileSize;
对于我指定的任何图像尺寸,如何确保实际传递的图像尺寸将返回4个刻度100,50,25,12,5中的一个?
答案 0 :(得分:1)
该示例代码中存在多个错误,其中一个涉及对这些比例值进行适当舍入,这会导致您遇到的问题。但也有其他微妙的问题。请查看this question,其中更详细地介绍了这些问题(和修正)。