cell上面放图片和文字,可以使用cell自身cell自身的属性cell.imageView和cell.textLabel,也可以自己给cell上添加imageView和label。
1.图片自适应高度:根据图片的宽高比例,通过数学比例运算得出图片应该显示的高度,来设置相框的高度
(1)计算图片等比例高度
- (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)设置cell上的高度,调用上面方法
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return [self imageScaleHeightWithImage:@"图片名"];
}
(3)效果图如下:
2.对给定文字来限制他的应该的高度,用这个高度来设置Label的范围
// 计算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)设置cell上的高度,调用上面方法。 注意设置cell.textLabel多行显示。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
cell.textLabel.text = @“自定义文本”; //例如:@“刚刚,就刚刚。我们厂里那个16岁的女孩子嚣张的找我说。要我退出我的婚姻,我跟我老公不合适,说我人老珠黄。她说他爱我老公,感觉我老公也喜欢他,我儿子她会视如己出,要我乖乖的立马走人,不要让她爱的人为难,说完走了,我他妈的气笑了,24岁的我人老珠黄?我最先想到的事竟然是先发糗百”
cell.textLabel.numberOfLines = 0;
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return [self labelHeightWithText:self.string font:[UIFont systemFontOfSize:19]];
}