Я получил пользовательскую кнопку UIB в своей TableViewCell через:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *ident = @"indet";
cell = [tableView dequeueReusableCellWithIdentifier:ident];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:ident] autorelease];
}
button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setFrame: CGRectMake( 230.0f, 7.5f, 43.0f, 43.0f)];
[button setImage:[UIImage imageNamed:@"check_bak.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(removeEntry) forControlEvents:UIControlEventTouchUpInside];
button.tag = [indexPath row];
[cell addSubview:button];
cell.textLabel.text = [myArray objectAtIndex:indexPath.row];
cell.textLabel.textColor = [UIColor blackColor];
cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:20.0];
cell.textLabel.shadowColor = [UIColor whiteColor];
cell.textLabel.shadowOffset = CGSizeMake(0,1);
return cell;
}
Я объявил indexPath в своем .h для функции removeEntry.
RemoveEntry:
[myArray removeObjectAtIndex:indexPath.row];
[myTable reloadData];
myArray является NSMutableArray.
Этот способ не работает должным образом.
Каждый раз, когда я удаляю запись в indexPath.row, она действительно удаляет запись. Но неправильно. Это всегда одна запись выше, которая удаляется. Даже если я сделаю indexPath.row + 1 / -1.
Есть ли другой способ? Кнопка должна оставаться в клетке.
Надеюсь, это понятно, извините, я немец. :)