BUG描述:

今天公司的项目中发现了一个BUG,大概给大家描述一下,tabbleView有一个tableFooterView,这个footView中有一个Label,是多行显示文本,程序用的是Autolayout自动布局,理论上不用操心高度的问题,但是测试发现,在6S Plus上label的文字能全部显示出来,而5S上底部有几行却没有显示出来,用UI调试工具看了下,是Label的高度不对,明显偏小了。


BUG分析:

后来查资料发现问题是我的程序中,用masonry自动布局后,在返回footerView前,要设置footerView的高度,而高度是根据系统自动布局的方法计算而来:

 [footerView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;

这个方法对于需要注意一点:

如果是计算多行UILabel,并且width不是固定的话(自动布局适配屏幕就是不固定,写死的数值算固定),需要设置label的preferredMaxLayoutWidth属性,否则计算的结果会有偏差!

BUG解决:

lable.preferredMaxLayoutWidth = KScreenWidth;

设置了这个属性后,所有的文字就都能显示出来了!


另外科普一下:

UILayoutFittingCompressedSize  表示返回最小可能的值

UILayoutFittingExpandedSize    表示返回最大可能的值

使用Autolayout对多行文本Label进行布局,高度不准确的解决办法!的更多相关文章

  1. Easyui Datagrid rownumbers行号四位、五位显示不完全的解决办法

    Easyui Datagrid rownumbers行号四位.五位显示不完全的解决办法(引) 方法一: 相信很多人在使用easyui的时候都遇到过这个问题,当我们设置成显示Rownumber的时候,你 ...

  2. python命令行运行py文件找不到模块的解决办法

    问题: 新建了一个项目,目录结构如下: 然后在pycharm中运行glovar是没有问题的,但是在命令行中运行就会提示找不到init模块 这是因为在pycharm中运行的时候,pycharm会自动将项 ...

  3. iOS swift 带有attributeString的多行文本label

    class AttributeStringGenerator { var attributeString: NSMutableAttributedString! var lineSpacing: CG ...

  4. 【原】文本图片自适应高度小bug以及解决办法

    自定义cell的文本图片自适应高度代码,如果存在自定义的cell赋值封装,就必须将自适应高度代码写在这个方法中

  5. 文本图片自适应高度小bug以及解决办法

    自定义cell的文本图片自适应高度代码,如果存在自定义的cell赋值封装,就必须将自适应高度代码写在这个方法中 点击效果: 注:- (void)layoutSubviews 方法不能同时操作,否则会出 ...

  6. flex布局下,css设置文本不换行时,省略号不显示的解决办法

    大致是有一个main容器是flex布局,左边一个logo固定宽高,右边content动态宽度. <div class="main"> <img alt=" ...

  7. flex 布局下,css 设置文本不换行时,省略号不显示的解决办法

    大致是有一个 main 容器是 flex 布局,左边一个 logo 固定宽高,右边 content 动态宽度. <div class="main"> <img a ...

  8. Android点击EditText文本框之外任何地方隐藏键盘的解决办法

    1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏 <LinearLayout xmlns:android=&q ...

  9. CAD启动提示"是否关闭命令行"不管点击什么,都会闪退的解决办法

    AutoCAD splash screen starts up and then closes   AutoCAD splash screen starts up and then closes (S ...

随机推荐

  1. OC-内存管理

    解铃还须系铃人 --1--内存管理的原理及分类 1.1 内存管理的原理 1.2 内存管理的分类 --2--手动内存管理 2.1 关闭ARC的方法 2.2 手动管理(MRC)快速入门 --3-- 内存管 ...

  2. oracle dblink的创建方式

    操作语句: create database link zfxtdblink connect to tianhe2014 identified by tianhe2014 using '199.169. ...

  3. 模板——RMQ

    就是模板 #include <cstdio> #include <cstring> #include <iostream> using namespace std; ...

  4. ifconfig 下面的一些字段(errors, dropped, overruns)

    一台机器经常收到丢包的报警,先看看最底层的有没有问题: # ethtool em2 | egrep 'Speed|Duplex' Speed: 1000Mb/s Duplex: Full # etht ...

  5. python json操作

    来源 http://www.cnblogs.com/qq78292959/p/3467937.html 什么是json: JSON(JavaScript Object Notation) 是一种轻量级 ...

  6. 微信小程序-设备

    网络状态: wx.getNetworkType(OBJECT) 获取网络类型. OBJECT参数说明: wx.getNetworkType({ success: function(res) { var ...

  7. sql 游标

    --创建游标 DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ] [ FORWARD_ONLY | SCROLL ] [ STATIC | KEYSET | D ...

  8. jq

    1: http://jquery.cuishifeng.cn/index.html jquery 学习查询首页<br> 2: http://m.oschina.net/blog/75741 ...

  9. 自建数据源(RSO2),并支持增量

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  10. dpkg: 处理归档 /var/cache/apt/archives/软件名 (--unpack)时出错:由于已经达到 MaxReports 限制,没有写入 apport 报告。

    一.环境介绍: OS:ubuntu16.04 64bit 二.错误如下: 正准备解包 .../libqt4-script_4%3a4.8.7+dfsg-5ubuntu2_i386.deb  ...正在 ...