Связь между UITableViewCells в UITableViewController
Я знаю, что это общая тема вопроса. Однако я не нашел ответа после долгих поисков, поэтому спрашиваю его здесь.
У меня есть UITableViewController, где каждая строка является экземпляром подкласса UITableViewCell. Каждый подкласс UITableViewCell имеет UIButton. Изначально все кнопки UIB имеют одинаковое изображение (просто синий круг). Нажатие на кнопку вызывает изменение только изображения этой кнопки (скажем, на красный круг). Эта часть проста: просто обработайте нажатие внутри подкласса UITableViewCell и переключите изображение.
Вот сложная часть: когда я нажимаю другую синюю кнопку, я хочу, чтобы кнопка, которая в данный момент красная (если есть), переключала изображение обратно на синий. Как я могу сказать этой кнопке, чтобы переключить ее изображение?
Где я могу отслеживать кнопку, которая в данный момент красная?
1 ответ
Реализовать - (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];
}