2013-10-06 35 views
1

我使用Apple PhotoScroller示例中的平鋪視圖來平鋪一些圖像。這對我的大多數圖像都很有用,但我有一些奇怪的比例值。我將細節級別設置爲4.我的圖像全部按照不同的值進行縮放,100,50,25,12.5比例,然後在這些級別上平鋪256x256。iOS的CATiledLayer和TilingView的規模問題?

在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任何圖像大小我指定的一個?

回答

1

該示例的代碼中存在一些錯誤,其中一個錯誤涉及對這些比例值的正確舍入,導致您看到的問題。但也有其他一些微妙的問題。請查看this question,其中更詳細地描述了這些問題(和修復)。