Я создал три кнопки и установил фоновое изображение для нормального состояния и выбранного состояния.Когда я нажимаю кнопку, изменил одно изображение в качестве выбранного состояния.Но когда выполняется прокрутка табличного представления, выбранное изображение не сохраняется (предыдущая выбранная ячейка), что означает, что оно приходит в нормальное состояние.
Мой код:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
likeBtn = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *likeSelectedImage = [UIImage imageNamed:@"like.png"];
//set image as background for button in the normal state
[likeBtn setBackgroundImage:likeSelectedImage forState:UIControlStateNormal];
[likeBtn addTarget:self action:@selector(likeAction:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:likeBtn];
}
Действие Моя кнопка
-(void) likeAction : (id) sender
{
UIImage *likeSelectedImg = [UIImage imageNamed:@"like-selected.png"];
UIImage *likeImg = [UIImage imageNamed:@"like.png"];
if ([sender isSelected]) {
[sender setImage:likeImg forState:UIControlStateNormal];
[sender setSelected:NO];
}else {
[sender setImage:likeSelectedImg forState:UIControlStateSelected];
[sender setSelected:YES];
}
}
Так что моя проблема в том, что, когда я прокручиваю ячейку табличного представления, ранее выбранное состояние изображения не сохраняется.Потому что метод cellForRowAtIndex неоднократно вызывался, когда я прокручивал таблицу.поэтому он автоматически устанавливает "[likeBtn setBackgroundImage:likeSelectedImage forState:UIControlStateNormal];"
.Как избежать этой проблемы?Так что, пожалуйста, помогите мне?Спасибо!