IOS開発-プライベートアドレスブック編集スタイル(60)

I.概要

この記事では主にコンテンツを紹介します。

  • ナビゲーションバーの右側に削除ボタンを追加します(追加ボタンがあります)
  • テーブルビューエントリを削除するには、削除ボタンをクリックします
  • テーブルビュー編集の前に呼び出し、テーブルビューで編集モードを切り替えます(追加、削除モード)

2つのレンダリング

3つのナビゲーションバーの右側に削除ボタンを追加します(追加ボタンがあります)

3.1Main.storyboardから追加

  • Xcodeの上部にある[+]をクリックし、BarButtonItemを選択して、システムアイテムのゴミ箱を選択します

     

3.2コードで追加

ビジネスの論理

  • レイアウトに「追加」ボタンを追加します
  • コードで「削除」ボタンを作成する
  • aviationItem.rightBarButtonItemsを介して上記の2つのボタンを追加します

コード

1 
2 
3 
4 
5 
6
// Get +ボタン
UIBarButtonItem * add = self.navigationItem.rightBarButtonItem; 
   
//ゴミ箱ボタンを追加
UIBarButtonItem * trash = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemTrash target:self action:@selector(delete)]; 
self.navigationItem。 rightBarButtonItems = @ [add、trash];

テーブルビューエントリを削除するには、削除ボタンを4回クリックします

4.1ロジックの説明

  • テーブルビューの編集モードを設定します。削除ボタンをクリックすると、テーブルビューの編集モードが切り替わります。
  • 編集モードがdeleteの場合、commitEditingStyleメソッドが呼び出され、データとレイアウトの操作が更新されます。

4.2コードの実装

削除方法

1
[self.tableView setEditing:!self.tableView.editingアニメーション:YES];

commitEditingStyle

1 
2 
3 
4 
5
//データを削除します
[self.contactsremoveObjectAtIndex:indexPath.row]; 
//インターフェイスを更新します//[self.tableView 
reloadData 
]; //グローバル更新[self.tableViewdeleteRowsAtIndexPaths:@ [indexPath] withRowAnimation:UITableViewRowAnimationLeft]; //削除部分的

テーブルビューの編集モードを5つ切り替えます(追加、削除モード)

5.1ロジックの説明

  • テーブルビューは、編集前にeditingStyleForRowAtIndexPathメソッドを呼び出します。これにより、テーブルビューのエントリのスタイルを設定できます。
  • たとえば、エントリ0はUITableViewCellEditingStyleInsertで、その他はUITableViewCellEditingStyleDeleteです。
  • 対応する関数を対応するスタイルに追加します

5.2コードの実装

editoringStyleForRowAtIndexPath

1 
2 
3 
4 
5 
6 
7
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableVieweditingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(indexPath.row == 0){ 
        return UITableViewCellEditingStyleInsert; 
    } 
    return UITableViewCellEditingStyleDelete; 
}

UITableViewCellEditingStyleInsert

1 
2 
3 
4
連絡先* contact = [連絡先contactWithName:@ "grace" phone:@ "123"]; 
//[self.contacts addObject:contact]; //追加到最后一行
[self.contactsinsertObject:contact atIndex:indexPath.row + 1]; 
[self.tableView reloadData];

おすすめ

転載: blog.csdn.net/Calvin_zhou/article/details/109140073