Я реализовал следующий метод в моем tableviewcontroller для отображения избранного с пустой звездой и заполненной звездой:
-(IBAction) tapped:(UIButton *)sender
{
if([sender isSelected])
{
//...
[sender setImage:[UIImage imageNamed:@"fav-empty.png"] forState:UIControlStateNormal];
[sender setSelected:NO];
}
else
{
//...
[sender setImage:[UIImage imageNamed:@"fav-filled.png"] forState:UIControlStateNormal];
[sender setSelected:YES];
NSLog(@"%@",sender);
}
}
, и я попытался использовать в этой части:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
UILabel *recept_neve=[[UILabel alloc] initWithFrame:CGRectMake(10, 10, 100, 40)];
[recept_neve setTag:1];
UIButton *kedvenc_btn=[UIButton buttonWithType:UIButtonTypeCustom];
[kedvenc_btn setImage:[UIImage imageNamed:@"fav-empty.png"] forState:UIControlStateNormal];//default appereance on the startup
kedvenc_btn.frame=CGRectMake(200, 20, 50, 50);
[kedvenc_btn setTag:2];
[kedvenc_btn addTarget:self action:@selector(tapped:) forControlEvents:UIControlEventTouchUpInside];
[[cell contentView] addSubview:recept_neve];
[[cell contentView] addSubview:kedvenc_btn];
//[(UILabel*) [[cell contentView] viewWithTag:1] setText:[receptek objectAtIndex:indexPath.section*blokk+1]];
//[(UIButton *) [cell contentView] viewWithTag:2];
}
// Configure the cell...
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
[(UILabel*) [[cell contentView] viewWithTag:1] setText:[receptek objectAtIndex:indexPath.section*blokk+1]];
return cell;
}
Моя проблемазаключается в том, что каждая пятая кнопка в ячейках работает так же, как и раньше.Если я нажму на кнопку (пустая звезда) в первой ячейке, результат будет следующим: первая кнопка становится заполненной звездой, пока все хорошо (ожидаемое поведение), но в то же время шестая звезда становится заполненнойтоже.Или, если я нажму на вторую, седьмая звезда заполняется, и наоборот ...
Я зарегистрировал кнопки, где я нажимал, и понял, что адреса памяти равны в случае кнопок вышеупоминается.Извините за мой английский, и большое спасибо за каждую помощь заранее!