UITableViewCell布局里面文字的自适应

简介: UITableViewCell布局里面文字的自适应

效果


image.png

  • 1.需要在model里面再加一个高度的属性


@property(nonatomic,assign) float cellHeight;
  • 2.在model.m文件里两种操作来控制cell里面文字的大小


- (void)setText:(NSString *)text{
   _text = text;
 方法一:
   UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(5, 5,      [UIScreen mainScreen].bounds.size.width-10, 0)];
   label.text = text;
   label.font = [UIFont systemFontOfSize:30];
   label.numberOfLines = 0;
  CGSize s = [label sizeThatFits:CGSizeMake([UIScreen mainScreen].bounds.size.width-10, MAXFLOAT)];
  self.cellHeight = s.height + 310;
 方法二:
  CGSize size = [text boundingRectWithSize:CGSizeMake([UIScreen mainScreen].bounds.size.width-20, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:30]} context:nil].size;
 self.cellHeight = size.height + 310;
 }
  • 3.自定义的label在重写UITableViewCell里面进行返回model的高度


-(void)setModel:(ModelCell *)model
{
    _model = model;
    self.iconImage.image = [UIImage imageNamed:model.icon];
    self.Labeltext.font = [UIFont systemFontOfSize:30];
    CGRect rect = self.Labeltext.frame;
    rect.size.height = model.cellHeight-310;
    self.Labeltext.numberOfLines = 0;
    self.Labeltext.frame = rect;
    NSString *string = [NSString stringWithFormat:@"      %@",model.text];
    self.Labeltext.text = string ;
 }

需要强调的是:2里面和3里面字体的大小要保持一致,还有宽度



  • 4.在UITableViewController  里面cell高度返回里面写入


-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ModelCell *model = dataArray[indexPath.row];
    return model.cellHeight;
}


5.具体的代码如下github下载

目录
相关文章
|
1月前
|
弹性计算
|
7月前
使用SDAutoLayout实现控件根据内容进行宽度自适应和高度自适应
使用SDAutoLayout实现控件根据内容进行宽度自适应和高度自适应
126 2
|
7月前
UITableView根据表格内容进行高度自适应与使用Masonry实现根据内容进行宽度自适应和高度自适应
UITableView根据表格内容进行高度自适应与使用Masonry实现根据内容进行宽度自适应和高度自适应
104 0
|
7月前
|
前端开发 容器
如何实现一个两栏布局,右侧自适应?三栏布局中间自适应?
要实现一个两栏布局,右侧自适应的效果,可以使用 CSS 的 Flexbox 或 Grid 布局来实现。以下是使用 Flexbox 实现的示例:
82 1
|
UED 容器
如何实现侧边两栏宽度固定,中间栏宽度自适应的布局?——双飞翼布局、圣杯(Holy Grails)布局
如何实现侧边两栏宽度固定,中间栏宽度自适应的布局?——双飞翼布局、圣杯(Holy Grails)布局
91 0
|
前端开发
Shapes布局-文字环绕动画
Shapes布局-文字环绕动画
128 0
|
前端开发 容器
Grid实现自适应九宫格布局
Grid实现自适应九宫格布局
343 0
|
Java Maven Android开发
Android文字轮播~可垂直可水平跑马灯
Android文字轮播~可垂直可水平跑马灯
Android文字轮播~可垂直可水平跑马灯
|
前端开发 开发者
尺寸样式属性 | 学习笔记
快速学习尺寸样式属性。
如何让QComboBox控件下拉框自适应文字宽度?
如何让QComboBox控件下拉框自适应文字宽度?
1172 0