文章标题

UITableView
自带滑动效果
创建方法和UIView相同

创建

UITableView *tableView=[[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];
    tableView.backgroundColor=[UIColor yellowColor];
    [self.view addSubview:tableView];

UITable有两套协议方法,需要签两个协议

@interface RootViewController ()<UITableViewDataSource,UITableViewDelegate>
 //设置行高
    tableView.rowHeight=100;
    //设置代理人
    tableView.dataSource=self;
    tableView.delegate=self;

主要协议方法
注:1.2.3用的比较多

1.主要功能就是实现点击

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    NSLog(@"row = %ld",indexPath.row);
    NSLog(@"section = %ld",indexPath.section);
    NSLog(@"%@",self.arr[indexPath.row]);
}

2.通过这个方法可以让tableView显示内容

//这个方法只要有cell要出现,就会触发
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    //tableViewCell通过重用避免了多余的创建,一般来讲一个tableView现实的cell数是有限的,所以为了提高效率,避免重复的创建,利用重用解决问题重用也是常见的tableView面试问题
    //1.现指定一个cell的重用标识
    //一般来讲,一个tableview对应一个重用标识,重用标志作用就是告诉系统哪个cell对应哪个tableView
    static NSString *reuse=@"reuse";

    //系统先会根据重用标识在重用池里找,有没有用闲置的cell,如果有直接拿来用,如果没有,再创建
    UITableViewCell *cell=[tableView dequeueReusableHeaderFooterViewWithIdentifier:reuse];
    //如果没找到对应的cell是0x0
    if (!cell) {
        cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuse] autorelease];
    }
    //cell提供了三种视图,两个label,一个imageView
    cell.textLabel.text=self.arr[indexPath.row];
    cell.detailTextLabel.text=[NSString stringWithFormat:@"%ld",indexPath.section];
    cell.imageView.image=[UIImage imageNamed:@"c4.jpg"];
//    NSLog(@"%ld",indexPath.row);
    return  cell;
}

3.设置tableView里有多少个分区

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 3;
}

4.设置不同行高

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    if (indexPath.row %2 ==0) {
        return 100;
    }else{
    return 50;
    }
}

5.指定每个分区有多少行

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    if(section%2==0){
        return 10;
    }else{

    return  self.arr.count;
    }
}

6.设置分区的标题

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    return [NSString stringWithFormat:@"%ld",section];
}
-(NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{
    return @"hello";
}
-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
    return @[@"a",@"b",@"c"];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值