UITableView和UITableViewcell

UITableView和UItableViewCell使用的很广泛,所以要熟练掌握。

布局如下:只创建了跟视图控制器,在跟视图控制器中编写UItableView和UItableViewCell。

重点:
1.使用数组和字典,务必要熟练掌握。因为以后联网了,基本都是存在数组或字典中。而且使用字典和数组可以大大简化代码

还是那句话,废话不多说,直接上代码

#import "RootViewController.h"

@interface RootViewController ()

@property(nonatomic,retain)UITableView * tableView;

@property(nonatomic,retain)NSArray * bigArray;
@property(nonatomic,retain)NSArray * array1;
@property(nonatomic,retain)NSArray * array2;
@property(nonatomic,retain)NSArray * array3;
@property(nonatomic,retain)NSArray * headerTittle;

@property(nonatomic,retain)NSMutableDictionary * dic;

@end

@implementation RootViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.view.backgroundColor = [UIColor whiteColor];



    self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 44, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame))  style:UITableViewStylePlain];

    _tableView.dataSource = self;
    _tableView.delegate = self;

    [self.view addSubview:_tableView];


    self.array1 = @[@"通用",@"隐私"];

    self.array2 = @[@"iCoud",@"地图",@"Safari",@"相机",@"GameCenter"];

    self.bigArray = @[_array1,_array2];

    self.headerTittle = @[@"设置",@"程序"];

    NSArray *keyArray  = @[@"一",@"二"];

    self.dic = [NSMutableDictionary dictionaryWithObjects:_bigArray forKeys:keyArray];

    // Do any additional setup after loading the view.
}




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


    //每设置一个分组,访问一次本方法
    //之所以可以写成下边一句,是因为section是变化的
//    return [_bigArray[section] count];

#pragma mark -------------字典形式

    NSArray *keys = [_dic allKeys];

    NSString *key = [keys objectAtIndex:section];

    NSArray *array = [_dic objectForKey:key];

    return array.count;
}



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

#pragma mark ===============cell的重用机制
    //如果重用集合中,有可用的cell,则可以从中取出cell使用
    //如果重用标示为@“cell”的对象的话,则取出使用

    //如果重用集合中没有可用重用标识符为@“cell”的对象,则创建一个标示为@“cell”这样的一个新的cell对象


    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];



    if (cell == nil) {

        cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"]autorelease];
    }

    //创建cell,每设置一个cell,访问一次本方法
//    UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];


    cell.imageView.image = [UIImage imageNamed:@"reg_logo.png"];


    NSLog(@"%@",NSStringFromCGRect(cell.frame));

    //设置显示的内容
//    cell.textLabel.text = _bigArray[indexPath.section][indexPath.row];
//    
//    cell.detailTextLabel.text = _bigArray[indexPath.section][indexPath.row];
//    
//    return cell;

    //用字典的形式显示内容


    NSArray *keys = [_dic allKeys];

    NSString *key = keys[indexPath.section];

    NSArray *array = [_dic objectForKey:key];


    cell.textLabel.text = array[indexPath.row];

    return cell;


}


#pragma mark---------------实现UITableViewDelegate协议中的方法

//点击了那一行
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"secton = %lu,row = %lu",indexPath.section,indexPath.row);
}

//设置行高
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CGFloat height = 100;
    return height;
}

//设置区头的高度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 30.0;
}

//设置区未的高度
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    return 30.0;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    //返回几组,
    return _bigArray.count;
}


-(NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
    NSString *str = _headerTittle[section];
    return str;
}


- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    return @[@"A",@"B",@"C"];
}




//自定义区未视图

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 100, 30)];

    label.textAlignment = NSTextAlignmentCenter;

    label.backgroundColor = [UIColor redColor];
    label.text = @"hahha";
    return label;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值