iOS的UILabel和UITextView根据文字内容计算高度

前言:在开发中,我们经常会遇到根据文字内容来计算View的高度

方案一:

    UITextView *yuyanView = [[UITextView alloc] init];
    yuyanView.editable = NO;
    yuyanView.scrollEnabled = NO;
    yuyanView.text = @"如何根据文字内容来计算View的高度";
    CGSize yuyanSize = [yuyanView sizeThatFits:CGSizeMake(self.view.frame.size.width-5, MAXFLOAT)];
    yuyanView.frame = CGRectMake(5, titleLabel.frame.size.height + titleLabel.frame.origin.y+5, yuyanSize.width, yuyanSize.height);
    [contentView addSubview:yuyanView];

方案二:

    UITextView *yuyanView = [[UITextView alloc] init];
    yuyanView.editable = NO;
    yuyanView.scrollEnabled = NO;
    self.yuyanView = yuyanView;
    yuyanView.text = _yuyan;
    CGSize yuyanSize = [yuyanView.text boundingRectWithSize:CGSizeMake(self.view.frame.size.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17]} context:nil].size;
    yuyanView.frame = CGRectMake(5, titleLabel.frame.size.height + titleLabel.frame.origin.y+5, yuyanSize.width, yuyanSize.height);
    [contentView addSubview:yuyanView];

后记: 遇到此问题的伙伴们赶快去试一试吧!有其他问题欢迎留言讨论。
坑:使用方案二的时候数据一直不能全部显示,需要在计算出来的高度上在加个40.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,848评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,674评论 2 59
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,241评论 2 89
  • 门头的老树叶子全掉光了 只剩下突兀的树干 是啊 又是一个冬季 当初的娃娃都 长大 可这个冬天格外的冷 冷的父母的发...
    沉默包容你阅读 231评论 0 1
  • 放假了,奶奶的检查结果也没什么大问题,终于可以安心带娃儿了。傍晚时分,小家伙坐在读书角里,拿着虫虫书把玩着...
    元正妈妈阅读 158评论 0 0

友情链接更多精彩内容