Tableview 优化Cell的复用机制01

复制代码
#import "ViewController.h"

@interface ViewController ()<UITableViewDataSource>

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    UITableView *tab=[[UITableView alloc]init];
    tab.frame=self.view.bounds;
    tab.dataSource=self;
    tab.rowHeight=70;//行高
    [self.view addSubview:tab];
}
#pragma mark-<UITableViewDataSource>数据源
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return 100;
}
//每当有cell进入屏幕中就会调用
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
//    UITableViewCell *cellaaa=[[UITableViewCell alloc]init];
////    cellaaa.textLabel.text=@"666";
////    %d->int
////    %zd->NSInteger
//    cellaaa.textLabel.text=[NSString stringWithFormat:@"6666---%zd",indexPath.row];
//    NSLog(@"%p-%zd",cellaaa,indexPath.row);
    
//    1.根据cell的标识去缓存池中查找可循环利用的Cell
    UITableViewCell *cellaaa=[tableView dequeueReusableCellWithIdentifier:@"a"];
//    2.如果cell为nil(缓存池找不到对应的cell)
    if(cellaaa==nil){
        cellaaa=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"a"];
//        cellaaa.textLabel.text=[NSString stringWithFormat:@"testdta---%zd",indexPath.row];
    }
//    3.覆盖数据
    cellaaa.textLabel.text=[NSString stringWithFormat:@"testdata---%zd",indexPath.row];
    
    return cellaaa;
}
@end
复制代码

 

 

posted on   高彰  阅读(351)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示