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下载

目录
相关文章
|
8天前
|
弹性计算
|
6月前
使用SDAutoLayout实现控件根据内容进行宽度自适应和高度自适应
使用SDAutoLayout实现控件根据内容进行宽度自适应和高度自适应
102 2
|
6月前
UITableView根据表格内容进行高度自适应与使用Masonry实现根据内容进行宽度自适应和高度自适应
UITableView根据表格内容进行高度自适应与使用Masonry实现根据内容进行宽度自适应和高度自适应
82 0
|
6月前
|
前端开发 容器
如何实现一个两栏布局,右侧自适应?三栏布局中间自适应?
要实现一个两栏布局,右侧自适应的效果,可以使用 CSS 的 Flexbox 或 Grid 布局来实现。以下是使用 Flexbox 实现的示例:
76 1
|
UED 容器
如何实现侧边两栏宽度固定,中间栏宽度自适应的布局?——双飞翼布局、圣杯(Holy Grails)布局
如何实现侧边两栏宽度固定,中间栏宽度自适应的布局?——双飞翼布局、圣杯(Holy Grails)布局
82 0
SwiftUI—如何给图像视图添加边框、透明度和阴影
SwiftUI—如何给图像视图添加边框、透明度和阴影
817 0
SwiftUI—如何给图像视图添加边框、透明度和阴影
如何让QComboBox控件下拉框自适应文字宽度?
如何让QComboBox控件下拉框自适应文字宽度?
1135 0
|
Android开发
Android屏幕适配之状态栏导航栏半透明、全透明(5.0以上去阴影),方法多样
1.1 StatusBar半透明用StatusBarView实现(4.4以上有效) 1.2 StatusBar半透明用setStatusBarColor实现(5.0以上有效) 2.1 StatusBar全透明用fitSystemWindows实现(4.
4925 0