#import "ViewController.h"
//屏幕宽和高
#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)
#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)
#define bgTableView [UIColor colorWithRed:235.0f/255.0f green:235.0f/255.0f blue:233.0f/255.0 alpha:1]
@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
{
UITableView *MyTableView;
CGFloat heightCell;
NSMutableArray *dataArray;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title=@"cell高度自适应";
dataArray=[[NSMutableArray alloc]initWithObjects:@"霜雪千年",@"梨花香",@"缠着衣角掠过熙攘,复悄入红帘深帐,听枝头黄鹂逗趣儿",@"细风绕指淌,坐船舫,兰桨拨开雾霭迷茫,不觉已一日过半,过眼的葱郁风光,悉数泛了黄,褪尽温度的风,无言牵引中,便清晰了在此的眉目,暮色的消融,隐约了晦朔葱茏,在这老街回眸,烟云中追溯我是谁,只消暮雨点滴",@"便足以粉饰这是非,待这月色涌起,谁人轻叩这门扉",@"苔绿青石板街,斑驳了流水般岁月,小酌三盏两杯,理不清缠绕的情结,在你淡漠眉间,瞥见离人的喜悲霜雪", nil];
MyTableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
[self.view addSubview:MyTableView];
MyTableView.backgroundColor=bgTableView;
[MyTableView setDataSource:self];
[MyTableView setDelegate:self];
//允许TableView滑动
MyTableView.scrollEnabled=YES;
MyTableView.tableFooterView = [[UIView alloc]initWithFrame:CGRectZero];
[MyTableView release];
}
#pragma mark-UITableViewDataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return dataArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
MyTableView.separatorStyle=UITableViewCellSeparatorStyleNone;//取消系统的分割线
static NSString *CellIdentifier = @"Cell";
// 通过indexPath创建cell实例 每一个cell都是单独的
UITableViewCell*cell = [MyTableView cellForRowAtIndexPath:indexPath];
// 判断为空进行初始化 --(当拉动页面显示超过主页面内容的时候就会重用之前的cell,而不会再次初始化)
if (!cell) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
cell.accessoryType = UITableViewCellAccessoryNone;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
UILabel *materialNameLbe=[[UILabel alloc]initWithFrame:CGRectMake(10, 5, SCREEN_WIDTH-10*2, 20)];
[cell addSubview:materialNameLbe];
materialNameLbe.textAlignment=NSTextAlignmentLeft;
materialNameLbe.font=[UIFont systemFontOfSize:16];
materialNameLbe.text=dataArray[indexPath.row];
materialNameLbe.numberOfLines=0;
materialNameLbe.lineBreakMode=NSLineBreakByWordWrapping;
CGSize size=[materialNameLbe sizeThatFits:CGSizeMake(materialNameLbe.frame.size.width, MAXFLOAT)];
UIView *xianView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 1)];
[cell addSubview:xianView];
xianView.backgroundColor=bgTableView;
if (size.height>20) {
materialNameLbe.frame=CGRectMake(10, 5, materialNameLbe.frame.size.width, size.height);
heightCell=size.height+5*2;
xianView.frame=CGRectMake(0, size.height+5*2, SCREEN_WIDTH, 1);
} else {
materialNameLbe.frame=CGRectMake(10,5, materialNameLbe.frame.size.width, 20);
heightCell=20+5*2;
xianView.frame=CGRectMake(0, 20+5*2, SCREEN_WIDTH, 1);
}
[materialNameLbe release];
[xianView release];
return cell;
}
#pragma mark-UITableViewDelegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
UILabel *materialNameLbe=[[UILabel alloc]initWithFrame:CGRectMake(10, 5, SCREEN_WIDTH-10*2, 20)];
materialNameLbe.textAlignment=NSTextAlignmentLeft;
materialNameLbe.font=[UIFont systemFontOfSize:16];
materialNameLbe.text=dataArray[indexPath.row];
materialNameLbe.numberOfLines=0;
materialNameLbe.lineBreakMode=NSLineBreakByWordWrapping;
CGSize size=[materialNameLbe sizeThatFits:CGSizeMake(materialNameLbe.frame.size.width, MAXFLOAT)];
if (size.height>20) {
materialNameLbe.frame=CGRectMake(10, 5, materialNameLbe.frame.size.width, size.height);
heightCell=size.height+5*2;
} else {
materialNameLbe.frame=CGRectMake(10,5, materialNameLbe.frame.size.width, 20);
heightCell=20+5*2;
}
[materialNameLbe release];
return heightCell+1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 0;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}