UILabel 根据内容的多少来计算label的frame
最近在项目中遇到了
Assertion failure in -[UISectionRowData refreshWithSection:tableView:tableViewRowData:]
这个崩溃报错,并且真机调试 卡在了 mj_reloadData 那里,是苹果那些人跟 mj教授过不去么,是可忍孰不可忍,投诉,投诉,投诉!
在系统11上运行没问题, 系统10.3.3-iphone6-xcode9 报错.
解决办法
1 注释掉下面代码, 使用代理实现
tableView.sectionFooterHeight = 0.1;
tableView.sectionHeaderHeight = 0.1;
tableView.estimatedSectionHeaderHeight = 0.1;
tableView.estimatedSectionFooterHeight = 0.1;
2 或者把0.1 改成大于1的任意数都可以, 1.1 , 1.5
3 或者把0.1 改成0
有时候还会报错 section footer height must not be negative - provided height for section 0 is -0.000100
你明明在代理方法里面 设置了 正的值,但是它就偏偏给你说 你设置的是负值。
当iOS9或iOS8系统下使用func tableView(_ tableView: UITableView, estimatedHeightForFooterInSection section: Int) -> CGFloat,如果return 值小于1会产生崩溃,iOS11和12则不会。
反正 这俩crash都是height在搞鬼,最初我们为了适应ios8、ios9. 给footer设置高度为0 系统不认,只好设置个0.00X 来。 但是随着新的版本的出现,这个0.00x要被废弃了。 而且我觉得 那个 tableView.estimatedSectionXXXHeight 也很鸡肋,基本用不到哦。
有不同看法欢迎评论区评论 190917
UILabel 根据内容的多少来计算label的frame的更多相关文章
- iOS-动态计算Label的高度
一. 要求 1.根据网络请求的回来的字符串内容,动态计算Label的高度. 二. 注意点 1. 要注意设置label 的 numberOfLines 为0; 2. MAXFLOAT 的作用. 设置高度 ...
- iOS开发小技巧--计算label的Size的方法总结
计算label的Size方法 sizeWithAttributes:方法 适用于不换行的情况,宽度不受限制的情况 /// 根据指定文本和字体计算尺寸 - (CGSize)sizeWithText:(N ...
- swift计算label动态宽度和高度
swift计算label动态宽度和高度 func getLabHeigh(labelStr:String,font:UIFont,width:CGFloat) -> CGFloat { let ...
- IOS UILabel 根据内容自适应高度
iOS Label 自适应高度 适配iOS7以后的版本 更多 self.contentLabelView = [[UILabel alloc] init]; self.contentLabelVie ...
- swift 计算label的行数方法
这主要针对是 cell上label自适应高度, let lineSpaceKey = "lineSpaceKey" extension UILabel{ var lineSpace ...
- 动态计算Label高度
//1.设置该label的numberOfLines为0 self.titleLabel.numberOfLines = 0; //2.字体的设置要与之前相同 NSDictionary * at ...
- 根据文字动态计算Label高度或宽度
//根据已知的label宽度计算文字高度 CGRect rect = [reson boundingRectWithSize:CGSizeMake(label_W, 0) options:NSStri ...
- IOS中Label根据上个label的内容设置下个label的frame
#import "ViewController.h" @interface ViewController () @property(nonatomic,strong)UILabel ...
- 计算label
func getCGSize(size:CGSize,fontSize:CGFloat,text:String)->CGSize{ let attributes = [NSFontAttribu ...
随机推荐
- [未完成][Mooc]关于Linxu的总结(一)
视频1:Linux之前有个Minix(这个是一个教授用来教学用的)开源的,不是编译过的,不能通过QQ.exe找到其源码.后来Linus这个家伙搞了一个Linux.服务器领域超过百分之八十.linux是 ...
- java性能
一.关于性能的基本知识 1.性能的定义 在我们讨论怎样提高Java的性能之前,我们需要明白“性能“的真正含义.我们一般定义如下五个方面作为评判性能的标准. 1) 运算的性能----哪一个算法的执 ...
- Nginx - Core Module Directives
The following is the list of directives made available by the Core module. Most of these directives ...
- Jersey(1.19.1) - Client API, Proxy Configuration
为 Jersey Client 设置代理,可以使用带有 ClientHandler 参数的构造方法创建 Client 实例. public static void main(String[] args ...
- SQL<>0查询不到NUll的值
这几天遇到这样一个问题,sql中写<>0,刚好某个记录是NULL,道理上是满足<>0的啊,可是就是抽不出来,关于这个问题,到处找了点资料,算是这里 写一个总结出来. 用java ...
- Forms身份认证
引言 大家都知道Http是无状态的协议,所以访问一个url,你并不能知道用户在之前是否已经登陆过.但是许多业务上的逻辑又离不开user的信息,这个时候就可以借助身份认证来记录当前user的登录状态.这 ...
- ASSERT报错:error C2664: “AfxAssertFailedLine”: 不能将参数 1 从“TCHAR []”转换为“LPCSTR”
转载请注明来源:崨雁嫀筝 http://www.cnblogs.com/xuesongshu 这个错误是我在把tinyxml修改为宽字符(Unicode)版本时候遇到的问题,我首先按关键字把所有有ch ...
- python的全局变量玩法还挺特别的
global g_arr def add(): #global g_arr g_arr = [] g_arr.append(1) add() print g_arr #你将收获一个NameError错 ...
- android 数据库的增删改查
主java package com.itheima.crud; import android.app.Activity; import android.content.Context; import ...
- TIMAC 学习笔记(二)
昨天大体上熟悉了TIMAC自带的CC2530的示范例程,今天先从演示抓包入手,分析四种不同的配置工程在空中传输的差异.随后,会按照扫描.组网.入网等MAC层接口函数入手,结合IEEE 802.15.4 ...