#import MainViewController.h
#import Cell.h
@interface MainViewController ()
@property(nonatomic, retain)NSArray *picArr;
@property(nonatomic, retain)NSMutableArray *ziArr;
@end
@implementation MainViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.navigationController.navigationBar.translucent = NO;
self.view.backgroundColor = [UIColor greenColor];
self.navigationItem.title=@心靜自然涼;
UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 64) style:UITableViewStylePlain];
tableView.backgroundColor=[UIColor yellowColor];
[self.view addSubview:tableView];
// [tableView setEditing:YES animated:YES];
[tableView release];
tableView.delegate = self;
tableView.dataSource = self;
// //他只會執行一次,可以設置行高,但是不靈活
// tableView.rowHeight=100;
}
- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
[self create];
}
return self;
}
- (void)create
{
self.picArr = [NSArray arrayWithObjects:@1.jpg, @2.jpg, @3.jpg,nil];
self.ziArr = [NSMutableArray arrayWithObjects:@中國共產黨新聞網北京4月1日電 (萬鵬)3月28日,習近平主席出席2015年博鳌論壇年會開幕式並發表了題為《邁向命運共同體 開創亞洲新未來》的主旨演講,他強調,“亞洲是世界的亞洲。亞洲要邁向命運共同體、開創亞洲新未來,必須在世界前進的步伐中前進、在世界發展的潮流中發展。習主席的演講傳遞了哪些重要信息?國務院參事室特邀研究員保育鈞,中國國際問題研究院研究員楊希雨做客人民網時談到,習主席主旨演講展現出“五大亮點”,再次提出“亞洲方式”的新命題,開幕式本身可謂“一帶一路”的各國大合唱,讓人印象深刻, @床前明月光,疑是地上霜.舉頭望明月,低頭思故鄉, @NBA常規賽強強對話,勇士在一度落後17分的情況下,客場以110-106逆轉快船,終結對手7連勝的同時豪取10連勝。庫裡全場轟下27分,並在第二節運球晃倒保羅,技驚四座。快船格裡芬40分,外加12籃板5助攻,nil];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *reuse = @reuse;
Cell *cell = [tableView dequeueReusableCellWithIdentifier:reuse];
if (!cell) {
cell = [[Cell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuse];
}
cell.cellImageView.image=[UIImage imageNamed:self.picArr[indexPath.row]];
cell.newLabel.text=self.ziArr[indexPath.row];
return cell;
}
#pragma mark 這個方法是tableView的delegate所提供的協議方法,主要用來設置每一行的高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
//根據圖片的尺寸設置行高
//
UIImage *image = [UIImage imageNamed:self.picArr[indexPath.row]];
//通過CGSize找到image裡面圖片的尺寸
CGSize picSize=image.size;
//計算行高
CGFloat rowHeight = picSize.height * self.view.frame.size.width / picSize.width;
//計算label高
//根據對應的文字求出cell上的label顯示的高度
NSDictionary *fontDic=[NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:14],NSFontAttributeName, nil];
//根據文字的大小,計算出文本的尺寸
//還需要執行一個尺寸(375,0)
//第三個參數,計算高度需要根據字體的哪個特征來確定
CGRect rect = [self.ziArr[indexPath.row]boundingRectWithSize:CGSizeMake(375, 0) options:NSStringDrawingUsesLineFragmentOrigin attributes:fontDic context:nil];
//最後把結果作為返回值返回
return rowHeight + rect.size.height;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
//
// Cell.h
// UI10_cell自適應高度
//
// Created by dllo on 15/8/11.
// Copyright (c) 2015年 zhozhicheng. All rights reserved.
//
#import
@interface Cell : UITableViewCell
@property(nonatomic,retain)UIImageView *cellImageView;
@property(nonatomic,retain)UILabel *newLabel;
@end
//
// Cell.m
// UI10_cell自適應高度
//
// Created by dllo on 15/8/11.
// Copyright (c) 2015年 zhozhicheng. All rights reserved.
//
#import Cell.h
@implementation Cell
-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self=[super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
[self createView];
}
return self;
}
-(void)createView
{
self.cellImageView=[[UIImageView alloc] init];
self.cellImageView.backgroundColor=[UIColor yellowColor];
[self.contentView addSubview:self.cellImageView];
[_cellImageView release];
self.newLabel=[[UILabel alloc] init];
self.newLabel.backgroundColor=[UIColor yellowColor];
//指定label的字體大小
//默認字體是17
self.newLabel.font=[UIFont systemFontOfSize:14];
self.newLabel.numberOfLines=0;
[self.newLabel sizeToFit];
[self.contentView addSubview:self.newLabel];
[_newLabel release];
}
-(void)dealloc
{
[_cellImageView release];
[_newLabel release];
[super dealloc];
}
-(void)layoutSubviews
{
[super layoutSubviews];
//讓imageView尺寸和圖片大小相同
//因為這個方法是最後一個執行的,所以執行到這個方法的時候,已經對cell各個屬性完成賦值操作,所以可以通過imageView.image找到圖片的尺寸
CGSize picSize = self.cellImageView.image.size;
CGFloat height = picSize.height * self.contentView.frame.size.width / picSize.width;
self.cellImageView.frame =CGRectMake(0, 0, self.contentView.frame.size.width, height);
NSDictionary *fontDic=[NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:14],NSFontAttributeName, nil];
//根據文字的大小,計算出文本的尺寸
//還需要執行一個尺寸(375,0)
//第三個參數,計算高度需要根據字體的哪個特征來確定
CGRect rect = [self.newLabel.text boundingRectWithSize:CGSizeMake(375, 0) options:NSStringDrawingUsesLineFragmentOrigin attributes:fontDic context:nil];
self.newLabel.frame=CGRectMake(0, height, self.contentView
.frame.size.width, rect.size.height);
}
- (void)awakeFromNib {
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end