さて、私の問題は、ボタンをクリックするとテーブルビューの行を削除していることです.送信者のタグを取得してデータソース配列から削除し、テーブル...
cellForRowAtIndexPath 内 (関連部分は deleteBtn です): *以下は修正済みの動作コードです。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"questionCell";
HTQuestionCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if(cell == nil)
{
cell = [[HTQuestionCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSDictionary *dict = [NSDictionary dictionary];
dict = _questionsArray[indexPath.row];
NSMutableAttributedString *atbString;
NSMutableAttributedString *atbQuestionString;
atbString = [[NSMutableAttributedString alloc] initWithString:[dict objectForKey:@"person"] attributes:@{NSFontAttributeName:[UIFont boldSystemFontOfSize:34]}];
atbQuestionString = [[NSMutableAttributedString alloc] initWithString:[dict objectForKey:@"question"] attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:34]}];
[atbString appendAttributedString:atbQuestionString];
[cell.questionTxtView setAttributedText:atbString];
[cell.deleteBtn setTag:indexPath.row];
[cell.showBtn setTag:indexPath.row];
NSLog(@"Delete Button : %@", cell.deleteBtn);
[cell.deleteBtn addTarget:self action:@selector(deleteMsg:) forControlEvents:UIControlEventTouchUpInside];
[cell.showBtn addTarget:self action:@selector(showMsg:) forControlEvents:UIControlEventTouchUpInside];
return cell;
}
そして、delete メソッドでこれを行います。
UIButton *tempButton = sender;
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:tempButton.tag inSection:0];
[_questionsArray removeObjectAtIndex:tempButton.tag];
[_dataTable deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
[_dataTable reloadData];
reloadData の代わりに beginUpdates と endUpdates も試しましたが、どれも効果がありません...
だから、私がそれをテストしているとき、私は2つの行を持っています...最初はタグが正しく設定されています-0と1...しかし、次に行0を削除し、新しい最初の行のタグを確認すると、まだありますタグ = 1、今は 0 のはずですが、削除後にボタンのタグが更新されないようです...