uitableView行高自定义

做为自己的开发笔记。所以有点简单。


1.uitableView的基本用法和加载数据


//
//  ViewController.m
//  微博布局
//
//  Created by 虞海飞 on 16/3/3.
//  Copyright © 2016年 虞海飞. All rights reserved.
//

#import "ViewController.h"
#import "abc_TableViewCell.h"

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>

@property (nonatomic,strong) UITableView *tableView;
@property (nonatomic,strong) NSMutableArray  *array;

@end

static NSString *CELL = @"abc";

@implementation ViewController

-(UITableView *)tableView{

    if (!_tableView) {

        _tableView = [UITableView new];
    }

    return _tableView;
}

-(NSMutableArray *)array{

    if (!_array) {

        _array = [NSMutableArray array];
    }

    return _array;
}


- (void)viewDidLoad {
    [super viewDidLoad];

    NSDictionary *dic_01 = [NSDictionary dictionaryWithObjectsAndKeys:@"qqqqqqqqqqqqq",@"label_01",@"",@"label_02",nil];
    NSDictionary *dic_02 = [NSDictionary dictionaryWithObjectsAndKeys:@"",@"label_01",@"",@"label_02",nil];
    NSDictionary *dic_03 = [NSDictionary dictionaryWithObjectsAndKeys:@"",@"label_01",@"qqqqqqqqqqqqq",@"label_02",nil];
    NSDictionary *dic_04 = [NSDictionary dictionaryWithObjectsAndKeys:@"qqqqqqqqqqqqq",@"label_01",@"",@"label_02",nil];
    NSDictionary *dic_05 = [NSDictionary dictionaryWithObjectsAndKeys:@"",@"label_01",@"",@"label_02",nil];
    NSDictionary *dic_06 = [NSDictionary dictionaryWithObjectsAndKeys:@"qqqqqqqqqqqqq",@"label_01",@"",@"label_02",nil];
    NSDictionary *dic_07 = [NSDictionary dictionaryWithObjectsAndKeys:@"qqqqqqqqqqqqq",@"label_01",@"wwww",@"label_02",nil];
    NSDictionary *dic_08 = [NSDictionary dictionaryWithObjectsAndKeys:@"qqqqqqqqqqqqq",@"label_01",@"wrwrwr",@"label_02",nil];
    NSDictionary *dic_09 = [NSDictionary dictionaryWithObjectsAndKeys:@"qqqqqqqqqqqqq",@"label_01",@"qqqqqqqqqqqqq",@"label_02",nil];

    [self.array addObject:dic_01];
    [self.array addObject:dic_02];
    [self.array addObject:dic_03];
    [self.array addObject:dic_04];
    [self.array addObject:dic_05];
    [self.array addObject:dic_06];
    [self.array addObject:dic_07];
    [self.array addObject:dic_08];
    [self.array addObject:dic_09];

    self.tableView.delegate = self;
    self.tableView.dataSource = self;
}

-(void) viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];

    [self add_View];
}



-(void) add_View{

    [self.view addSubview:self.tableView];
    //用自动布局
    self.tableView.translatesAutoresizingMaskIntoConstraints = NO;

    //top
    NSLayoutConstraint *top_Constraint = [NSLayoutConstraint constraintWithItem:self.tableView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0];
    [self.view addConstraint:top_Constraint];

    //right
    NSLayoutConstraint *right_Constraint = [NSLayoutConstraint constraintWithItem:self.tableView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1.0 constant:0.0];
    [self.view addConstraint:right_Constraint];

    //left
    NSLayoutConstraint *left_Constraint = [NSLayoutConstraint constraintWithItem:self.tableView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0];
    [self.view addConstraint:left_Constraint];

    //bottom
    NSLayoutConstraint *bottom_Constraint = [NSLayoutConstraint constraintWithItem:self.tableView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0.0];
    [self.view addConstraint:bottom_Constraint];
}

#pragma  mark -- 一组多少个
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.array.count;
}

#pragma  mark -- 多少组
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    return 1;
}

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

    abc_TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CELL];

    if (!cell) {

        cell = [[abc_TableViewCell alloc] initWithFrame:self.tableView.frame];
    }
    NSMutableDictionary *dic = self.array[indexPath.row];
    cell.dic = dic;

    return cell;
}


- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
    return cell.frame.size.height;
}

@end



2.就是关键一点了,动态算法


//
//  abc_TableViewCell.m
//  微博布局
//
//  Created by 虞海飞 on 16/3/3.
//  Copyright © 2016年 虞海飞. All rights reserved.
//

#import "abc_TableViewCell.h"

@interface abc_TableViewCell ()

@property (nonatomic,strong) UILabel *label_01;
@property (nonatomic,strong) UILabel *label_02;
@property (nonatomic,strong) UIButton *button_01;
@property (nonatomic,strong) UIButton *button_02;

@end

@implementation abc_TableViewCell


- (void)awakeFromNib {
    // Initialization code
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

//这个是调用代码用的方法
-(instancetype)initWithFrame:(CGRect)frame{
   self = [super initWithFrame:frame];

    if (self) {

        _label_01 = [UILabel new];
         _label_02 = [UILabel new];
    }

    return self;
}

-(void) setDic:(NSMutableDictionary *)dic{

    _dic = dic;
    [self add_View];
}

-(void) add_View{

    NSString *string_Label_01 = [self add_JudgeNull_NSString:self.dic[@"label_01"]];
    if (![string_Label_01 isEqualToString:@""]) {

        _label_01.frame = CGRectMake(10, 10, 200, 40);

    }
    else{

         _label_01.frame = CGRectMake(10, 10, 200, 0);
    }
    _label_01.backgroundColor = [UIColor redColor];
    _label_01.text = string_Label_01;



    NSString *string_Label_02 = [self add_JudgeNull_NSString:self.dic[@"label_02"]];
    if (![string_Label_02 isEqualToString:@""]) {

        _label_02.frame = CGRectMake(10, CGRectGetMaxY(_label_01.frame)+10, 200,40);
    }
    else{

        _label_02.frame = CGRectMake(10,  CGRectGetMaxY(_label_01.frame), 200, 0);
    }
    _label_02.backgroundColor = [UIColor blueColor];
    _label_02.text = string_Label_02;

    CGRect rect = CGRectMake(0, 0, 400,CGRectGetMaxY(_label_02.frame)+10);
    self.frame = rect;

    [self addSubview:self.label_01];
    [self addSubview:self.label_02];

}

-(NSString *) add_JudgeNull_NSString:(id)id{

    NSString *string = id;

    if (![string isEqualToString:@""]) {

        return string;
    }
    return @"";
}


@end




3,效果图


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值