このUITableViewsは私を夢中にさせるでしょう!
私はUITableViewCellを作成しました
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
doneButton = [[UIButton alloc]initWithFrame:CGRectMake(7, 15, 30, 30)];
[cell addSubview:doneButton];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
[doneButton addTarget:self action:@selector(done:) forControlEvents:UIControlEventTouchDown];
UILabel *postedTime = [[UILabel alloc]initWithFrame:CGRectMake(240, 4, 60, 15)];
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
postedTime.backgroundColor = [UIColor clearColor];
[cell addSubview:postedTime];
cell.textLabel.textColor = [UIColor blackColor];
UILabel *post = [[UILabel alloc] initWithFrame:CGRectMake(45, 25, 190, 30)];
[cell addSubview:post];
UILabel *title = [[UILabel alloc] initWithFrame:CGRectMake(45, 4, 180, 15)];
[cell addSubview:title];
mission *m = (mission *)[missionsArray objectAtIndex:indexPath.row];
title.text = m.title;
post.text = m.post;
postedTime.text = m.posted;
.hファイル:
IBOutlet UITableView *table;
NSMutableArray *missionsArray;
メソッドで行を削除しようとしています
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
[missionsArray removeObjectAtIndex:indexPath.row];
[table reloadData];
}
そして、「削除」ボタンをクリックすると、EXC_BAD_ACCESS。[missionsArrayremoveAllObject]を呼び出そうとしました。-同じエラー。次に、NSLog(@ "%u"、indexPath.row);を試しました。--正しい行を出力します(最初の行を選択すると、0などが返されます)。また、私はこれを試しました
if (editingStyle == UITableViewCellEditingStyleDelete) {
[missionsArray removeObjectAtIndex:indexPath.row];
[table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
[table reloadData];
}
そして、私は良い結果がありません。多分セルの高さがそれに影響します...助けてください。何をすればいいのか、どこを検索すればいいのかわかりません。
問題が解決しました。ミッションオブジェクトを解放しようとしたとき、問題は論理的な誤りでした。