2013-02-22 51 views
0

我需要創建一個類似於UISegmentControl行爲的控件,它將一個子圖層列表顯示爲一個超級圖層。 這些子層數可以改變,我必須計算他們的位置。CALayer和float位置列表

這裏的問題...如果我把一個寬度等於31的超級層和我想放置4個子層,我應該創建4個子層每寬31/4 = 7.75。所以第一層有origin.x = 0,第二層有origin.x = 7.75,第三層是15.5,最後是23.25。

顯然這些位置是無效的,他們會產生模糊的層...我無法找到一個方法來繞過這個值能夠填補整個superlayer和維護整數值的寬度和origin.x,某人有一個解決方案?

回答

2

您可以使用精確值計算所有原點,然後將它們舍入到最接近的積分。然後通過簡單地減去兩個相鄰的原點(或從最終子圖層的原點減去父母的總寬度)來計算所有寬度。這將產生完全覆蓋父母的圖層,並具有積分座標,但某些圖層會比其他圖層寬1個像素。