我有大約10個名爲pop1到pop10的UIImageView控件。在XCODE中使用字符串引用UIImageView控件
我在UIImageView上有10個按鈕。所述按鈕具有從1到10,所以我知道正被按下的按鈕「標籤」:
UIButton * aButton =(UIButton *)sender;
aButton.tag - gives me the tag
我要引用的按鈕下的UIImageView改變其圖像時,它上面的按鈕被按下:
UIImage *image = [UIImage imageNamed: @"NewImage.png"];
[pop1 setImage:image];
但是在上面的代碼我不想硬編碼「POP1」或「POP2」等我想用按鈕標籤
NSString *img = [NSString stringWithFormat:@"pop%d",aButton.tag];
給我「POP1」建立一個字符串或「pop2」等,因爲我正在使用aButton.tag。
因此,如何使用此信息如何編寫代碼以引用UIImage以更改其圖像?
在他行的「POP1」需要進行更改,以便它使用內置的字符串 - IMG:
[pop1 setImage:image];
我不想不得不在每個標籤作爲日後鍵入一個switch語句我打算添加大量這樣的控件,這不是一個選項。
有沒有辦法或有什麼其他方法可以使用?
更新
我試圖通過約翰在像這樣的代碼
-(IBAction)pop:(id)sender{
UIButton * aButton =(UIButton *)sender;
NSLog(@"clicked button with TAG %d",aButton.tag);
if (aButton.tag > 0) {
UIImageView *img = (UIImageView *)[self.view viewWithTag:aButton.tag];
UIImage *ix = [UIImage imageNamed:@"Newimage.png"];
[img setImage:ix];
// stop any more clicks
aButton.tag = 0;
}
}
一切都給出了答案構建好,但上運行,我得到一個錯誤,因爲「IMG」在調試窗口的顯示出來「UIButton」不是UIImage(我認爲)。
我完全迷惑了這一點,因爲在IB控制顯示爲類:UIImageView但在代碼中我引用它作爲UIImage?它們可以互換嗎?
如何訪問所述的「標籤」屬性「的UIImageView - 顯示圖像陣列(幫助)描述了單個圖像或動畫」
Bascically按鈕也有一個標籤,所以如果按鈕2是點擊它的標籤是2.所以我想改變標籤= 2的UIImageView的圖像等等。
我目前正在學習C/C,在大多數其他語言中這樣一個簡單的任務是非常繁瑣的。
我不知所措。請幫助。
好以上得到解決。我將UIImageView的標籤重命名爲101,102,103等,並將代碼更改爲:UIImageView * img =(UIImageView *)[self.view viewWithTag:aButton.tag + 100];這一切都奏效了。謝謝約翰。 – Bernard