1
У меня есть costoum ячейка с кнопкой. Я хочу, чтобы иметь возможность изменять изображение кнопки при нажатии. Я пытался это сделать, но я не получил желаемого результата.Кнопки пользовательские ячейки
в cellForRowAtIndexPath:
BOOL isTheObjectThere = [self.favoriteArry containsObject:self.tableData[indexPath.row]];
if (isTheObjectThere==TRUE) {
cell.favBtn.hidden = NO;
[cell.favBtn setImage:[UIImage imageNamed:@"fav_selected.png"] forState:UIControlStateNormal];
cell.favBtn.tag = indexPath.row;
[cell.favBtn addTarget:self action:@selector(favoriteBtn:) forControlEvents:UIControlEventTouchUpInside];}
else {
cell.favBtn.hidden = NO;
[cell.favBtn setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];
cell.favBtn.tag = indexPath.row;
[cell.favBtn addTarget:self action:@selector(unfavoriteBtn:) forControlEvents:UIControlEventTouchUpInside];
}
и:
-(void)favoriteBtn:(UIButton*)sender
{
if ([cell.favBtn.currentImage isEqual:[UIImage imageNamed:@"fav_selected.png"]]){
[cell.favBtn setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];
}
else if ([cell.favBtn.currentImage isEqual:[UIImage imageNamed:@"[email protected]"]]){
[cell.favBtn setImage:[UIImage imageNamed:@"fav_selected.png"] forState:UIControlStateNormal];
}
Вы должны легко быть в состоянии решить эту проблему с помощью отладчика. Моя догадка заключается в том, что вы не можете использовать 'isEqual' так, как вы его используете. Лучше сохранить копию изображений в качестве локальных свойств, тогда вы можете просто сравнить указатели. –
Идея заключается в том, что изображение меняется, но не в правой ячейке. –