Я создал массив UIButton
с.Мне нужно менять изображения на этих кнопках программно, в разное время.В настоящее время, чтобы заставить это работать, я хочу изменить изображение, когда кнопка нажата, но это не время, когда это действительно произойдет.
Итак, я создаю массив кнопок,и расположить их на сетке на экране:
for (UInt16 index=0; index < (mNumColumns * mNumRows); index++)
{
<....Snipped code for setting the x,y,width,height vars...>
UIButton *thisCell = [UIButton buttonWithType:UIButtonTypeCustom];
thisCell.tag = index;
thisCell.frame = CGRectMake(currentX, currentY, cellWidth, cellHeight);
[thisCell addTarget:self action:@selector(buttonPushed:)
forControlEvents:UIControlEventTouchUpInside];
[thisCell setImage:[UIImage imageNamed:@"cellBackground.png"]
forState:UIControlStateNormal];
[[self view] addSubview:thisCell];
}
--- А затем обработчик кнопок -
-(void)buttonPushed:(UIView*)clickedButton
{
NSLog(@"Click %d", clickedButton.tag);
[clickedButton setImage:[UIImage imageNamed:@"cellEmpty.png"]
forState:UIControlStateNormal];
[clickedButton setNeedsDisplay];
}
1) Исходная сетка кнопок отображается правильно.
2) Если я изменю имя файла PNG для начальной сетки на cellEmpty.png, он будет работать с новым изображением, поэтому я знаю, что изображение может отображаться.
3) Я вижу "Click n"в отладчике правильная кнопка вызывает buttonPressed
Но, как вы можете догадаться, изображение не обновляется.Я не думаю, что хочу иметь дело с состояниями кнопок в это время .... так как изменение изображения на самом деле не имеет отношения к нажатию кнопки в реальной жизни (изменение будет результатом загрузки нового изображения по сети).