// // RAOrderEditViewController+TableDataSource.m // Apex And Drivers // // Created by Jack on 2018/6/4. // Copyright © 2018年 USAI. All rights reserved. // #import "RAOrderEditViewController+TableDataSource.h" #import "RAEditLabelCell.h" #import "RAEditPhotoCell.h" #import "RAEditInputModel.h" #import "RAEditMultInputModel.h" #import "RAEditLabelModel.h" #import "RAEditPhotoModel.h" @implementation RAOrderEditViewController (TableDataSource) - (nonnull UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath { RAEditBaseModel *model = [self modelForIndexPath:indexPath]; switch (model.type) { case RAEditTypeLabel: { RAEditLabelCell *cell = [tableView dequeueReusableCellWithIdentifier:@"RAEditLabelCell" forIndexPath:indexPath]; RAEditLabelModel *labelModel = (RAEditLabelModel *)model; cell.model = labelModel; return cell; } break; case RAEditTypeInput: { RAEditScanInputCell *cell = [tableView dequeueReusableCellWithIdentifier:@"RAEditScanInputCell" forIndexPath:indexPath]; RAEditInputModel *inputModel = (RAEditInputModel *)model; cell.model = inputModel; cell.delegate = self; return cell; } break; case RAEditTypeMultInput: { RAEditMultInputCell *cell = [tableView dequeueReusableCellWithIdentifier:@"RAEditMultInputCell" forIndexPath:indexPath]; RAEditMultInputModel *multInputModel = (RAEditMultInputModel *)model; cell.model = multInputModel; cell.delegate = self; return cell; } break; case RAEditTypePhoto: { RAEditPhotoCell *cell = [tableView dequeueReusableCellWithIdentifier:@"RAEditPhotoCell" forIndexPath:indexPath]; RAEditPhotoModel *photoModel = (RAEditPhotoModel *)model; cell.model = photoModel; return cell; } break; default: break; } UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"detaulCell"]; return cell; } - (NSInteger)tableView:(nonnull UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [self itemCountForSection:section]; } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return [self editSectionCount]; } #pragma mark - Input Delegate - (void)beginEditInputCell:(RAEditScanInputCell *)cell { self.editingIndexPath = [self indexPathForCell:cell]; } - (void)endEditInputCell:(RAEditScanInputCell *)cell { self.editingIndexPath = nil; } #pragma mark - MultInput Delegate - (void)beginEditMultInputCell:(RAEditMultInputCell *)cell { self.editingIndexPath = [self indexPathForCell:cell]; } - (void)endEditMultInputCell:(RAEditMultInputCell *)cell { self.editingIndexPath = nil; } @end