簡體   English   中英

如何使用代碼有效地平鋪UIImageViews的背景?

[英]How can I tile the background with UIImageViews with code efficiently?

我正在Xcode 6中使用很多UIImageViews來平鋪iPhone背景,我想知道這是否是最有效的解決方案。

我知道一個簡單的解決方案是在情節提要中創建圖像視圖,並用它們手動覆蓋整個屏幕。 我想用代碼來做。 這是我目前擁有的代碼(5x5的大小是可以的,因為我可以按比例放大或縮小以用更大或更大的圖像填充屏幕):

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"];

在此先感謝一下,我剛剛在我的大學完成了一個為期6周的IOS編程基礎課程,因此我仍然發現自己偶爾會嘗試安撫Objective C眾神。

我想我會懷疑為什么您需要它們成為圖像視圖。 在視圖或圖層中繪制圖像非常容易,並且在網格中排列視圖或圖層非常容易。 什么是,當你並沒有真正使用或需要任何的圖像視圖的國形象的看法?

我有幾個顯示平鋪圖像的應用程序-一個在網格中顯示99個瓶子,一個在用戶配對中點按以顯示瓷磚的“塊”網格,一個顯示用戶滑動到的矩形拼圖塊的網格。交換它們並按正確的順序排列它們,然后顯示一個由用戶在三胞胎中點擊以匹配它們的“卡片”網格-在這些情況下,我都不使用圖像視圖。 一方面,他們是CALayers; 在其他情況下,它們是自定義UIView子類; 但無論如何都不要使用UIImageViews。

對於像圖像網格這樣簡單的東西,似乎暗示了使用UIImageViews會過分殺傷。 如果您訴諸UIImageViews的原因是您不知道如何制作UIView或CALayer繪制其內容,那么我想說,停下來並學習如何做,然后再繼續。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM