2012-06-10 82 views
0

我有4個不同的圖像,每個圖像應該縮放到5px * 7.5px,然後隨機添加到UIScrollView 320x480。在一個視圖中,這是64x64 = 4096張圖片。很多圖像。那我該怎麼做?一個UIView中的許多小圖像

回答

1

比方說你的名字圖片img0.png, img1.png, img2.png, img3.png

你可以使用這樣的代碼:

for (int x=0;x<64;x++) { 
    for (int y=0;y<64;x++) { 
     UIImageView *imgView = [[UIImageView alloc] initWithImage: [UIImage imageNamed: [NSString stringWithFormat:@"img%d.png", arc4random()%3]]]; 
     CGRect frame = imgView.frame; 
     frame.origin.x = x*5.0; 
     frame.origin.y = y*7.5; 
     imgView.frame = frame; 
     [self.scrollView.view addSubView: imgView]; 
    } 
} 
+3

如果您要使用此子視圖解決方案,請至少在所有小子視圖上禁用自動調整選項。這將節省大量的繪圖時間。 – Cyrille

+0

我嘗試過這種方式,但渲染時間太長。你可以發佈一些[UIImage drawInRect:]解決方案的例子嗎? – Bojan

+0

在drawRect中使用隨機函數會在每次重畫時改變背景。如果這是你想要的,我可以給你寫一個簡短的代碼片段。如果這不是你想要的,那麼事情會變得更復雜一些,但也是可行的。請詳細解釋需要哪種行爲。 –

2

你最好直接畫他們在你的父視圖,在使用[UIImage drawInRect:]您的視圖的drawRect。否則,在父視圖中有4,096個子視圖可能導致巨大的性能下降。

+0

我同意Cyrille。在性能方面,這肯定會是一個更好的解決方案。 –

+1

取決於您是否需要獨立製作動畫,例如。在這種情況下,你需要參考他們每個人。但即使在這種情況下,最好將CALayers添加到父視圖的圖層中,而不是將UIImageView添加到父視圖的子視圖。 – Cyrille

相關問題