iOS 获取指定Cell及刷新指定的Cell

释放双眼,带上耳机,听听看~!

iOS UITableView获取cell的indexPath及cell内部按钮点击事件处理
iOS UITableView局部刷新 刷新单个cell或section

一、获取指定的Cell

1、在能获取当前cell的indexPath的情况下

NSIndexPath *indexPath=[NSIndexPath indexPathForRow:index.row  inSection:0];
 LSXCommunityCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
//已知cell,获取当前cell的indexPath
NSIndexPath *index=[NSIndexPath indexPathForRow:<#(NSInteger)#> inSection:<#(NSInteger)#>];

2、自定义的cell,在视图控制器要获取cell的indexPath
1)、在cell.h文件里面申明一个代理

#import <UIKit/UIKit.h>
#import "LSXCommunityModel.h"
@protocol  LSXCommunityDelegate<NSObject>
-(void)btnClick:(UIButton* )sender event:(id)event andFlag:(int)flag;
@end
@interface LSXCommunityCell : UITableViewCell
@property(assign,nonatomic)id<LSXCommunityDelegate>delegate;
@end

2)、在cell的.m文件里面实现代理方法

-(void)ClickTap:(UIButton *)sender event:(id)event{
     [self.delegate btnClick:sender event:event andFlag:(int)sender.tag];
    }

3)、在视图控制器里面调用代理方法

-(void)btnClick:(UIButton *)sender event:(id)event andFlag:(int)flag{
    NSSet *touches =[event allTouches];
    UITouch *touch =[touches anyObject];
    CGPoint currentTouchPosition = [touch locationInView:self.tableView];
    NSIndexPath *indexPath= [self.tableView indexPathForRowAtPoint:currentTouchPosition];
//获取当前操作的cell
LSXCommunityCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
//获取当前cell对应的模型(model)
LSXCommunityModel *model =self.dataArray[indexPath.row];
//刷新指定的cell
 [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil] withRowAnimation:UITableViewRowAnimationNone];
}

 

人已赞赏
iOS文章

iOS-UICollectionView的简单使用

2019-10-4 20:56:03

iOS文章

深入iOS系统底层之函数调用

2019-10-5 1:19:50

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索