Objective - C UITableView学习笔记


UITableView具有两套协议,分别是

<UITableViewDataSource,UITableViewDelegate>


// 设置协议代理人

tableView.dataSource = self;

tableView.delegate = self;



// 方法

一 : UITableViewDataSource:有两个常用的方法:


// 指定一个分区有多少行

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section



// 通过这个方法让tableview显示内容

// 这个方法只要有cell出现,就会触发

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{


            // tableViewCell通过重用避免了多余的创建,一般来讲一个tableView显示的cell数是有限的,所以为了提高效率,避免重复的创建,利用重用解决问题.重用也是常见的tableView的面试问题

            

     // 步骤一:先指定一个cell的重用标识

    // 一般来讲,一个tableView对应一个重用标识,重用标识作用就是告诉系统,哪个cell对应哪个tableView

    static NSString *reuse = @"reuse";

    

    // 系统先会根据重用标识在重用池里找,有没有闲置的cell,如果有直接拿来用,如果没有,再创建

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuse];


    // 如果cell没找到,对应的cell0x0

    if (!cell) {

        

        cell = [[[UITableViewCell allocinitWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuse] autorelease];

        NSLog(@"创建了");

    }

    cell.textLabel.text = [NSString stringWithFormat:@"%ld",indexPath.row];

    

    // cell提供了三种视图,两个label,一个imageView

    // tableView与数组关联

    cell.textLabel.text = self.arr[indexPath.row];

    

    cell.detailTextLabel.text = [NSString stringWithFormat:@"%ld",indexPath.section];

    cell.imageView.image = [UIImage imageNamed:@"tu7.jpg"];

    NSLog(@"%ld",indexPath.row);


          

    return cell;


}



其他方法

#pragma mark 设置tableView里有多少个分区


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{


    return 3;


}


#pragma mark 设置分区的标题

- (nullable NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{


    NSString *str = [[NSString allocinit];

    str = @"0";

    

    return str;

}



- (nullable NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView*)tableView{


    return @[@"A",@"B",@"C"];


}




二: UITableViewDelegate:有一个常用的方法:


// 主要功能:实现点击

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值