我試圖在觸摸按鈕時更改UIButton圖像。目前,它只是在突出顯示的狀態變化上發生變化。我希望它改變並留在那裏。我嘗試了UIControlStateSelected來改變狀態,但沒有運氣。如何在觸摸按鈕時更改UIButton圖像
感謝您的幫助
這裏是我的代碼:
// Create buttons for the sliding category menu.
NSMutableArray* buttonArray = [NSMutableArray array];
NSArray * myImages = [NSArray arrayWithObjects:@"category-cafe-unsel.png", @"category-food-unsel.png", @"category-clothing-unsel.png", @"category-health-unsel.png", @"category-tech-unsel_phone.png" , @"category-tech2-unsel.png", @"catefory-theatre-unsel.png", @"category-travel-unsel.png", nil];
NSArray * myImagesSel = [NSArray arrayWithObjects:@"category-cafe-sel.png", @"category-food-sel.png", @"category-clothing-sel.png", @"category-health-sel.png", @"category-tech-sel_phone.png" , @"category-tech2-sel.png", @"catefory-theatre-sel.png", @"category-travel-sel.png", nil];
// only create the amount of buttons based on the image array count
for(int i = 0;i < [myImages count]; i++)
{
// Custom UIButton
btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setFrame:CGRectMake(0.0f, 20.0f, 52.0f, 52.0f)];
[btn setTitle:[NSString stringWithFormat:@"Button %d", i] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:[myImages objectAtIndex:i]] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:[myImagesSel objectAtIndex:i]] forState:UIControlStateHighlighted];
NSLog(@"The button title is %@ ", btn.titleLabel.text);
[btn addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[buttonArray addObject:btn];
工作嗎? –
謝謝。它會切換圖像 - 所以會顯示錯誤的圖像。它們似乎是一次性的,而不是圖像數組中的第一項顯示第二個顯示。另外,當另一個按鈕被觸摸時,狀態也不會被撤消。感謝您的幫助:) – hanumanDev
我將代碼更改爲int tagOfButton = button.tag - 2;現在正在顯示正確的圖像。當他人觸摸另一個按鈕時,我只是將它們恢復爲默認值。 :) – hanumanDev