2011-05-15 68 views
1

我正在做一個簡單的遊戲,要求我在很多不同的地方繪製多個UIImages。我的問題在於,我需要將UIImages添加到NSMutableArray,並稍後訪問它們。使用NSString來表示圖像(例如路徑)在這裏不起作用,所以我需要知道如何更改陣列中每個UIImage的圖像。如何將UIImages添加到NSMutableArray,並稍後更改圖像?

我的代碼如下(至少,用於訪問NSMutableArray)。 NSMutableArray在我的.h文件中聲明,並用不同的方法初始化。

for (int a = 0; a <= [theArray count]; a ++) { 
    // I make a UIImage, which I will draw later 
    UIImage *theImage = [theArray objectAtIndex:a]; 
    // then I do the drawing 
} 

這工作正常。我的問題是,我無法弄清楚如何更改NSMutableArray中的特定對象。我怎樣才能做到這一點?

順便說一句,我用以下代碼將UIImages添加到NSMutableArray。

+ (void) createCarWithImage:(NSString*)theImageName { 
    UIImage *anImage= [UIImage imageNamed:theImageName]; 
    [theArray addObject:anImage]; 
} 

回答

1

我想你想用這種方法:

- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject 

例如爲:

[theArray replaceObjectAtIndex:4 withObject:someOtherImage]; 
+0

好主意。非常感謝。 – Justin 2011-05-15 22:37:28

1

只需修改每個UIImageNSMutableArray的是,你只有一個指針的實際數據。也就是說,不管用什麼指針來更改數據,數據都會針對每個指針進行更改。

此外,您還可以重複你的UIImage s的:

for (UIImage *img in theArray) 
{ 
    //send messages to img 
} 

回答評論

您可以通過在指數4修改UIImage

UIImage *image = [theArray objectAtIndex:4]; 
//send messages to image 
+0

如何修改的形象呢?這是我的問題,但這個答案並沒有告訴我如何。 – Justin 2011-05-15 02:10:05

+1

通過發送['UIImage'](http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImage_Class/Reference/Reference.html)響應的每個圖像消息來修改它。你正在尋找縮放,翻譯等,或者你正在尋找逐像素修改? – 2011-05-15 02:18:44

+0

我不認爲我們在這裏互相瞭解。如何在不使用'for'循環的情況下更改圖像?例如,如果我想在索引@「4」處修改圖像,我該怎麼做? – Justin 2011-05-15 02:49:41