Изменение состояния пользовательского UIButton - PullRequest
0 голосов
/ 08 декабря 2011

Я создал пользовательский UITableViewCell в IB. У меня есть пользовательский UIButton с именем CheckMarkButton, который я добавил в IB, и имеет фоновое изображение «unchecked.png» (пустое поле без галочки).

Когда я использую эту ячейку в TableView, в cellForRowAtIndexPath я добавляю цель для кнопки:

cell.CheckMarkButton addTarget:self action@selector(CheckmarkButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

Тогда для селектора:

- (void)CheckmarkButtonPressed:(id)sender {
     UIButton *theButton = (UIButton *)sender;
     theButton.selected = !theButton.selected;
     [theButton setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateSelected];
}

Так что эта часть работает как положено. Теперь у меня есть другой метод, вызываемый из заголовка раздела, где я проверяю или снимаю флажок со всех строк TableView в этом разделе. После того, как я получаю доступ к ячейке, я пытаюсь установить кнопку на выбранную, чтобы показать, что она отмечена

cell.CheckMarkButton.selected = YES;

С этим утверждением я не вижу изменения значка галочки в моей ячейке. Что я делаю неправильно? Спасибо.

1 Ответ

0 голосов
/ 08 декабря 2011

Вы не меняете фон, просто устанавливаете свойство enabled.

Но в общем, вы просто делаете это неправильно. Вместо того, чтобы вручную изменять изображение при каждом нажатии кнопки, вы должны настроить различные изображения для каждого состояния в Интерфейсном Разработчике. Таким образом, всякий раз, когда вы отмечаете кнопку как выбранную, изображение будет обновляться автоматически.

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