#import "ViewController.h"
#import "MyCell.h"
@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
@property (nonatomic,strong) UITableView *tableV;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.tableV = [[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStylePlain];
self.tableV.delegate = self;
self.tableV.dataSource = self;
//让cell根据label的大小改变
self.tableV.rowHeight = UITableViewAutomaticDimension;
//cell虚拟高度
self.tableV.estimatedRowHeight = 44.0f;
[self.tableV registerNib:[UINib nibWithNibName:@"MyCell" bundle:nil] forCellReuseIdentifier:@"id"];
[self.view addSubview:self.tableV];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 10;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:@"id" forIndexPath:indexPath];
cell.label1.text = [self randStr];
cell.label2.text = [self randStr];
[cell addConstraintForLabel];
return cell;
}
- (NSString *)randStr{
int num = arc4random()%50+5;
NSMutableString *str = [[NSMutableString alloc]init];
for (int i = 0; i < num; i++) {
[str appendString:@"随机数据.."];
}
return str;
}
@end
#import <UIKit/UIKit.h>
@interface MyCell : UITableViewCell
@property (strong, nonatomic) UILabel *label1;
@property (strong, nonatomic) UILabel *label2;
- (void)addConstraintForLabel;
@end
#import "MyCell.h"
#import "Masonry.h"
@implementation MyCell
- (void)awakeFromNib {
self.label1 = [[UILabel alloc]init];
self.label2 = [[UILabel alloc]init];
self.label2.numberOfLines = 0;
self.label1.numberOfLines = 0;
self.label1.textColor = [UIColor redColor];
self.label2.textColor = [UIColor greenColor];
[self.contentView addSubview:self.label1];
[self.contentView addSubview:self.label2];
}
- (void)addConstraintForLabel{
[self.label1 mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.top.mas_equalTo(self.contentView).offset(10);
make.right.mas_equalTo(self.contentView).offset(-10);
}];
[self.label2 mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.contentView).offset(10);
make.right.bottom.mas_equalTo(self.contentView).offset(-10);
make.top.mas_equalTo(self.label1.mas_bottom).offset(10);
}];
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
Masonry-cell高度自适应.png
网友评论