UI UITableView表视图

<span style="font-size:18px;">- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    

    //UITableView继承自UIScrollView,所以可以滚动
    //表视图的每⼀条数据都是显⽰在UITableViewCell对象中
    //表视图可以分区显示数据,每个分区称为⼀个section,每⼀行称为 row,编号都是从0开始
    
    UITableView *tableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, 480) style:UITableViewStylePlain];
    //设置行高
    tableView.rowHeight=80;
    //设置分割线样式
    tableView.separatorStyle=UITableViewCellSeparatorStyleSingleLine;
    //设置分割线颜色
    tableView.separatorColor=[UIColor redColor];
    //设置数据源  提供数据源
    tableView.dataSource=self;
    //设置代理
    tableView.delegate=self;
    
    [self.view addSubview:tableView];
    [tableView release];
}
#pragma mark------------
#pragma mark 设置tableView分区数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 2;
}
#pragma mark 设置区头标题
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    if (section==0) {
        return @"A";
    } else if(section==1){
        return @"B";
    }
    return @"区头";
}
#pragma mark 设置区尾标题
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
    return @"区尾";
}
#pragma mark 设置右侧分区索引
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    NSArray *titles=@[@"A",@"B",@"C",@"D"];
    return titles;
}
#pragma  mark 设置每区的行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSLog(@"一共10行。。。。");
    return 10;
}
#pragma mark 设置cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    /*
     tableView重用机制:当cell移除屏幕时,会被放到tableView的重用队列中,当显示cell时,tableView会根据重用标识在重用队列中取出cell,显示到视图上。
     如果tableView能够显示n个cell,那么在tableView创建时,会创建n个cell,当移动时(上一个cell移出一半,下一个cell显示一部分时)会创建第n+1个cell。
     如果移动很快,还可能创建n+2,n+3。。。个cell,因为移动过快,tableView还来不及从重用队列取出重用cell,就需要显示,所以要创建
     */
    //先查看是否有重用的cell
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"AA"];
    //如果没有,需要创建
    static int count=0;//记录创建cell的个数
    if (cell==nil) {
        //注意内存管理
        cell=[[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"AA"] autorelease];
        //设置cell被选中时的样式  设置辅助视图    右面是箭头
        cell.selectionStyle=UITableViewCellSelectionStyleDefault;
        count++;
        NSLog(@"创建第%d个cell",count);
    }else{
        NSLog(@"重用");
    }
    //设置文本
    cell.textLabel.text=@"张三";
    //设置图片
    UIImage *img=[UIImage imageNamed:@"3.png"];
    cell.imageView.image=img;
    cell.detailTextLabel.text=@"xxx";

    //如果有,不需要创建
    return cell;
}
#pragma mark 设置某一行的高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row%2==0) {
        return 80;
    } else {
        return 50;
    }
}
#pragma mark 自定义区头视图
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    //此处设置的高度是不管用的必须在heightForHeaderInSection中设置区头高度
    UIView *headerView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
    headerView.backgroundColor=[UIColor redColor];
    return [headerView autorelease];
}
#pragma mark 设置区头高度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 50;
}
#pragma mark 选中某行
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"选中某一行");
    //页面切换
    if (indexPath.section==0&&indexPath.row==1) {
        SecondViewController *secondVC=[[SecondViewController alloc]init];
        [self.navigationController pushViewController:secondVC animated:YES];
        [secondVC release];
    }
}
</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值