Связь между UITableViewCells в UITableViewController - PullRequest
0 голосов
/ 02 августа 2011

Я знаю, что это общая тема вопроса. Однако я не нашел ответа после продолжительного поиска, поэтому спрашиваю его здесь.

У меня есть UITableViewController , где каждая строка является экземпляром UITableViewCell подкласса. Каждый подкласс UITableViewCell имеет UIButton . Изначально все кнопки UIB имеют одинаковое изображение (просто синий круг). Нажатие на кнопку вызывает изменение только изображения этой кнопки (скажем, на красный круг). Эта часть проста: просто обработайте нажатие внутри подкласса UITableViewCell и переключите изображение.

Вот сложная часть: когда я нажимаю другую синюю кнопку, я хочу, чтобы кнопка, которая в данный момент красная (если есть), переключала изображение обратно на синий. Как я могу сказать этой кнопке для переключения ее изображения?

Где я могу отслеживать кнопку, которая в данный момент красная?

1 Ответ

0 голосов
/ 02 августа 2011

Реализуйте метод - (void)setSelected:(BOOL)selected animated:(BOOL)animated в вашем подклассе UITableViewCell.Когда ячейка выбрана, сделайте изображение UIButton красным;в противном случае установите изображение UIButton на синий.Этот метод вызывается всякий раз, когда выбирается новая ячейка, поэтому всегда будет только одна ячейка с красной кнопкой.

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    if(selected)
    {
        [myButton setImage:RED_IMAGE forState:UIControlStateNormal]; //or however else you want to change your button's image
    }else
    {
        [myButton setImage:BLUE_IMAGE forState:UIControlStateNormal];
    }

    [super setSelected:selected animated:animated];
}
...