在自定义的方法获取点击的cell的行号

在自定义的方法获取点击的cell的行号

用到的方法:

- (nullable NSIndexPath *)indexPathForCell:(UITableViewCell *)cell;                      // returns nil if cell is not visible
- (nullable NSArray *)indexPathsForRowsInRect:(CGRect)rect;                              // returns nil if rect not valid

- (nullable __kindof UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath;
@property (nonatomic, readonly, nullable) NSIndexPath *indexPathForSelectedRow; // returns nil or index path representing section and row of selection.
@property (nonatomic, readonly, nullable) NSArray *indexPathsForSelectedRows NS_AVAILABLE_IOS(5_0); // returns nil or a set of index paths representing the sections and rows of the selection.

// Selects and deselects rows. These methods will not call the delegate methods (-tableView:willSelectRowAtIndexPath: or tableView:didSelectRowAtIndexPath:), nor will it send out a notification.
- (void)selectRowAtIndexPath:(nullable NSIndexPath *)indexPath animated:(BOOL)animated scrollPosition:(UITableViewScrollPosition)scrollPosition;
- (void)deselectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated;

结合通知观察者 把cell的信息发送到控制器, 在控制器的方法中获取具体点击的某个cell的位置

  • 在cell中 点击按钮的方法中:

    - (void)delectAction{
       [[NSNotificationCenter defaultCenter] postNotificationName:@"deleteAction" object:self];}
    
  • 在控制器的viewDidLoad()添加观察者

  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(deleteAction:) name:@"deleteAction" object:nil];
  • 实现具体的方法
  - (void)deleteAction:(NSNotification *)note{
    StoreShopsListCell *cell = note.object;
    NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
    NSLog(@"我只是调试用的~哈哈哈---%zd",indexPath.row);
    if (self.shopingCarArr.count >0) {
        [self.shopingCarArr removeObjectAtIndex:indexPath.row];
    }
}

你可能感兴趣的:(在自定义的方法获取点击的cell的行号)