cell上面放圖片和文字伞租,可以使用cell自身cell自身的屬性cell.imageView和cell.textLabel酥郭,也可以自己給cell上添加imageView和label哑舒。
1.圖片自適應(yīng)高度:根據(jù)圖片的寬高比例抠藕,通過(guò)數(shù)學(xué)比例運(yùn)算得出圖片應(yīng)該顯示的高度搂擦,來(lái)設(shè)置相框的高度
(1)計(jì)算圖片等比例高度
- (CGFloat)imageScaleHeightWithImage:(NSString *)name
{
UIImage *aImage = [UIImage imageNamed:name];
CGFloat width = aImage.size.width;
CGFloat height = aImage.size.height;
return height / width * [UIScreen mainScreen].bounds.size.width;
}
(2)設(shè)置cell上的高度崭孤,調(diào)用上面方法
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return [self imageScaleHeightWithImage:@"圖片名"];
}
(3)效果圖如下:
2.對(duì)給定文字來(lái)限制他的應(yīng)該的高度,用這個(gè)高度來(lái)設(shè)置Label的范圍
// 計(jì)算label的高度? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -(CGFloat)labelHeightWithText:(NSString *)text font:(UIFont *)font
{
NSDictionary *dic = @{NSFontAttributeName : font};
CGRect rect = [text boundingRectWithSize:CGSizeMake([UIScreen mainScreen].bounds.size.width, 100000) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil];
return rect.size.height;
}
(2)設(shè)置cell上的高度棕所,調(diào)用上面方法。 注意設(shè)置cell.textLabel多行顯示悯辙。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
cell.textLabel.text = @“自定義文本”; //例如:@“剛剛琳省,就剛剛迎吵。我們廠里那個(gè)16歲的女孩子囂張的找我說(shuō)。要我退出我的婚姻针贬,我跟我老公不合適击费,說(shuō)我人老珠黃。她說(shuō)他愛(ài)我老公桦他,感覺(jué)我老公也喜歡他蔫巩,我兒子她會(huì)視如己出,要我乖乖的立馬走人快压,不要讓她愛(ài)的人為難圆仔,說(shuō)完走了,我他媽的氣笑了蔫劣,24歲的我人老珠黃坪郭?我最先想到的事竟然是先發(fā)糗百”
cell.textLabel.numberOfLines = 0; ?
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
?return [self labelHeightWithText:self.string font:[UIFont systemFontOfSize:19]];
}