文章标题

来源:互联网 发布:淘宝不卖爱奇艺 最早 编辑:程序博客网 时间:2024/06/05 10:19

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
原创粉丝点击