ios UITableView 相關

來源:互聯網
上載者:User

標籤:style   blog   class   code   ext   c   

tableView 實現的方法 無分組的cell

#pragma mark - Table view data source- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{    return self.contacts.count;}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    // 1.建立cell    MJContactCell *cell = [MJContactCell cellWithTableView:tableView];       // 2.設定cell的資料    cell.contact = self.contacts[indexPath.row];        return cell;}

tableView的重新整理:

* 局部重新整理(使用前提: 重新整理前後, 模型資料的個數不變)

- (void)reloadRows:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;

* 局部刪除(使用前提: 模型資料減少的個數 == indexPaths的長度)
- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;

左滑動會調用 commitEditingStyle 方法 commitEditingStyle 中需要判斷是 添加還是刪除

#pragma mark - tableView的代理方法/** *  如果實現了這個方法,就自動實現了滑動刪除的功能 *  點擊了刪除按鈕就會調用 *  提交了一個編輯操作就會調用(操作:刪除\添加) *  @param editingStyle 編輯的行為 *  @param indexPath    操作的行號 */- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{    if (editingStyle == UITableViewCellEditingStyleDelete) { // 提交的是刪除操作        // 1.刪除模型資料        [self.contacts removeObjectAtIndex:indexPath.row];                // 2.重新整理表格        // 局部重新整理某些行(使用前提:模型資料的行數不變)        [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop];                // 3.歸檔        [NSKeyedArchiver archiveRootObject:self.contacts toFile:MJContactsFilepath];    } else if (editingStyle == UITableViewCellEditingStyleInsert) {        // 1.修改模型資料        MJContact *contact = [[MJContact alloc] init];        contact.name = @"jack";        contact.phone = @"10086";        [self.contacts insertObject:contact atIndex:indexPath.row + 1];                // 2.重新整理表格        NSIndexPath *nextPath = [NSIndexPath indexPathForRow:indexPath.row + 1 inSection:0];        [self.tableView insertRowsAtIndexPaths:@[nextPath] withRowAnimation:UITableViewRowAnimationBottom];//        [self.tableView reloadData];    }}

// 讓tableView進入編輯狀態

[self.tableView setEditing:!self.tableView.isEditing animated:YES];
當實現editStyleForRowAtIndexPath 的是時候,當點擊編輯的時候就會調用此方法,此方法是詢問編輯的狀態的
/** *  當tableView進入編輯狀態的時候會調用,詢問每一行進行怎樣的操作(添加\刪除) */- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{    return indexPath.row %2 ? UITableViewCellEditingStyleDelete : UITableViewCellEditingStyleInsert;}




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.