我正在Xcode 6平鋪與許多UIImageViews的iPhone背景,我想知道這是否是最有效的解決方案。如何有效地使用代碼與UIImageViews平鋪背景?
我知道一個簡單的解決方案是在故事板中創建圖像視圖,並用手動方式覆蓋整個屏幕。我想用代碼來做。下面是我當前的代碼(5×5是一個不錯的大小,因爲我可以擴展它向上或向下變大或更大的圖像,以填補屏幕):
CGRect tiles[5][5];
UIImage *tileImages[5][5];
UIImageView *tileViews[5][5];
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
tiles[i][j] = CGRectMake(50*i,50*j,50,50);
tileImages[i][j] = [UIImage imageNamed:@"tile.png"];
tileViews[i][j] = [[UIImageView alloc] initWithFrame:tiles[i][j]];
tileViews[i][j].image = tileImages[i][j];
[self.view addSubview:tileViews[i][j]];
}
}
目前所有圖像都是一樣的,但是從長遠拖延我會讓他們依賴於各種因素。
我讀過,我知道UIImageViews是挑剔的。這是用UIImageViews平鋪背景的正確和高效的方法嗎?有一個更好的方法嗎?我可以在瓷磚初始化後手動進入,並更改正在顯示的圖像並實時更新它嗎?
tileView[1][2].image = [UIImage imageNamed:@"anotherTile.png"];
在此先感謝,我剛剛結束在IOS編程基礎6周的課程,在我的大學,所以我還是發覺自己偶爾安撫Objective C的神。
我不知道有更簡單的方法來做到這一點。非常感謝!你知道有什麼好的資源可以用來學習如何用UIView或CALayer做到這一點嗎? –
呃... http://www.apeth.com/iOSBook/ch15.html – matt
非常感謝。我最終將所有東西都分類出來,並且在閱讀了您提供的鏈接後,我決定構建一個圖像上下文,在雙循環中填充圖像,然後將圖像上下文發送到單個UIImageView以顯示在主視圖上。這大大減少了我的內存使用,現在我的應用程序不會滯後! –