Изменить изображение UIbutton при нажатии - PullRequest
2 голосов
/ 14 июля 2010

Я сохранил 5 изображений в изменяемом массиве и отобразил их случайным образом на экране iPhone, добавив их в UIButton. Теперь я хочу изменить изображение на кнопку, на которую я нажму. но в моем коде меняется только последнее изображение, а не изображение, на котором я вызвал действие.

Ответы [ 3 ]

4 голосов
/ 21 сентября 2010

Вот код для 3 кнопок, который выделяет нажатую кнопку

-(void) changeButtonImage:(id) sender{
    [button1 setBackgroundImage:[UIImage imageNamed:@"button1Image_off.png"] forState:UIControlStateNormal];
    [button2 setBackgroundImage:[UIImage imageNamed:@"button2Image_off.png"] forState:UIControlStateNormal];
    [button3 setBackgroundImage:[UIImage imageNamed:@"button3Image_off.png"] forState:UIControlStateNormal];

    UIButton *button = sender;

    if (button.tag == 0) {
        [button1 setBackgroundImage:[UIImage imageNamed:@"button1Image_on.png"] forState:UIControlStateNormal];
    }else if (button.tag == 1) {
        [button2 setBackgroundImage:[UIImage imageNamed:@"button2Image_on.png"] forState:UIControlStateNormal];
    }else if (button.tag == 2) {
        [button3 setBackgroundImage:[UIImage imageNamed:@"button3Image_on.png"] forState:UIControlStateNormal];
    }

}

надеюсь, это поможет ...

СЧАСТЛИВОЕ КОДИРОВАНИЕ ...

2 голосов
/ 01 августа 2010

Если вы ищете, как изменить изображение на кнопке, просто выполните:

[myButton setImage:[UIImage imageNamed:@"myImage.png"] forState:UIControlStateNormal];

Вы можете сделать так, чтобы он проходил по вашему массиву, но создавая переменную для хранения индекса вашего изображения. Затем просто перейдите к следующему, используя приведенное выше утверждение, чтобы назначить изображение.

1 голос
/ 08 августа 2010

У вас есть выход (IBOutlet) для каждой из кнопок.Вы должны указать каждый из них как выход и просто использовать Интерфейсный Разработчик, чтобы подключить каждую кнопку к этим переменным.Затем создайте функцию для события touchUpInside каждой кнопки.Сделать эту кнопку нажата.сделайте эту функцию примерно такой:

-(void) buttonPressed:(id) sender
{
     ((UIButton *)sender).image = [UIImage imageNamed:@"Image.png"];
}

Вы захотите установить переменную наподобие currentImage, чтобы отслеживать, какое изображение установлено.Каждый раз, когда вы нажимаете, увеличивайте эту переменную (currentImage ++).Если он получает> некоторую окончательную сумму, установите его обратно в 0. Тогда вы можете просто сделать

if (currentImage == 0) { set first image; } else if (currentImage == 1) { set second image.. }

и т. Д.

Помогает ли это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...