iOS 8自适应高度单元格问题

iOS8新特性Self Sizing Cells,使用estimatedRowHeight自适应cell 阅读详情

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                       

iOS 8 中通过UITableViewAutomaticDimension 常量支持自适应高度的单元格(iOS 7 就要麻烦得多)。但是在实际应用中,我们需要注意以下几个问题:

1、  设置好模板单元格的自动布局
模板单元格中,subviews的自动局部必须要能够把单元格撑满。也就是说,iOS 必须能够通过内容的自动布局约束计算出 cell 的高。以下面的单元格为例:

cell中有上下两个 Label,上面的Label只有一行文本(lines为1),所以高度在运行时不会改变,但下面的Label是多行文本(lines为0),运行时其高度会根据文本内容自动增长。
左图中的自动布局是正确的,因此运行时单元格能够自适应高度。这是因为iOS能够根据cell的contentView中的各个子View计算出cell的正常高度,计算方式为:
cell 高度 = 第1个Label的top+第1个Label高度+第2个Label的top+第2个Label高度(根据内容自动计算)+第2个Label的bottom

但是当我们将第2个Label的top约束(或者bottom约束)删除,如右图所示,我们已经把图中红框所示位置的约束删除了,则iOS无法计算单元格的高度了。因为上述公式中的一个变量缺失。这样运行时表格中的所有cell都是固定高度,cell之间会发生重叠,同时控制台会报错:

Warning once only: Detected a case where constraints ambiguously suggest a height of zero for a tableview cell’s content view. We’re considering the collapse unintentional and using standard height instead.

2、  在viewDidLoad中设置tableView

接下来在viewDidLoad中设置tableView:
tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = 100;

第一句的作用如前面所述,是开启iOS 8的单元格的自适应高度特性。第二句代码也是同样的功能,estimatedRowHeight让你提供一个预先估计cell的高度值,这个值根本可以乱设(只要不为0),但如果你不写这句,或者将estimatedRowHeight属性设置为0,则iOS 8的单元格自动高度特性也不会生效。

3、  heightForRowAtIndexPath方法和estimatedHeightForRowAtIndexPath方法
开启了iOS 8 的单元格自动高度特性后,这两个方法就不需要了,或者简单地返回一个UITableViewAutomaticDimension常量:
    override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return UITableViewAutomaticDimension
    }
    override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return UITableViewAutomaticDimension
    }
当然,完全删除这两个方法也没有关系。

           

给我老师的人工智能教程打call!http://blog.youkuaiyun.com/jiangjunshow
这里写图片描述
iOS 给tableView 每行设置预估行高estimatedRowHeight,达到cell高度的自适应 在iOS8之后苹果推出的一个新特性Self Sizing Cells,意思就是让cell自己计算自己的高度,当我们在cell里面添加完所需控件,并约束好位置之后,我们只需要设置 tableView.estimatedRowHeight = 44.0f;//推测高度,必须有,可以随便写多少 tableView.rowHeight =UITableViewAutomat 阅读详情

相关推荐

UITableView高度自适应解决方法

UITableView高度自适应解决方法 iOS 源码 下载

Warning once only: Detected a case where constraints ambiguously suggest a height of zero for a tabl...

Warning once only: Detected a case where constraints ambiguously suggest a height of zero for a tableview cell's content view. We're considering the collapse unintentional and using standard heig...

bailang3277的博客 849

iOS tableview里面嵌套tableview,自适应高度

swift ,使用autolayout + storyboard 最外层tableview列表,cell里面嵌套了tableview,自适应内容,cell里的tableview不可滑动,内容全部显示,且文字分行显示,不用设置cell的高度直接可以自适应内容

Swift - UITableViewAutomaticDimension 不起作用的解决办法

问题学习swift过程中遇到了个问题就是UITableView的高度自适应UITableViewAutomaticDimension不起作用,并且还报了个 [Warning] [Warning] Warning once only: Detected a case where constraints ambiguously suggest a height of zero for a tablev

JokAr 5939

tableview自适应cell高度

tableview手动适应cell高度,以及iOS8之后自动适应cell高度

nbiot和2g_浅谈NBIOT

一、什么是NBIOT?1、概念窄带物联网(Narrow Band Internet of Things, NB-IoT),NB-IoT构建于蜂窝网络,只消耗大约180KHz的带宽,使用License频段,可采取带内、保护带或独立载波等三种部署方式,与现有网络共存。可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。2、NBIOT的特点和目标(1)超强覆盖:相对GPRS来...

weixin_39534100的博客 1704

[Warning] Warning once only: Detected a case where constraints ambiguously suggest a height of zero

 网上原因说是没有设置tableView的高度  然当tableView的高度要变成自适应的时候,显然tableView的高度不能直接写死而是设置为 UITableView.automaticDimension  所以产生此警告的真正原因是cell无法计算自身的高度。具体表现为cell的子view缺少top约束或者bottom约束。...

fang20180409的博客 1643

Vitis HLS 学习指南与实践教程

Vitis HLS 学习指南与实践教程摘要:本文系统介绍了AMD Vitis HLS工具及其应用。HLS技术将C/C++代码自动转换为硬件描述语言,显著提升FPGA开发效率(5-10倍)。文章对比了HLS与传统RTL设计的优势,包括抽象级别高、开发周期短、代码重用性强等特点。详细讲解了Vitis HLS工具链的核心功能,包括支持的C/C++特性(如任意精度数据类型)、开发流程(项目创建-代码编写-仿真-综合)以及关键优化技术(流水线、循环展开、数组分割等编译指示)。通过具体代码示例展示了HLS设计方法,为F

weixin_44707118的博客 1401

iOS TableView显示出现:Warning once only: Detected a case where constraints ambiguously suggest a height

错误原因: 使用Xib或者Storyboard创建cell的时候没有设置cell的高度 解决办法: 1>在代码里面设置cell的默认高度 self.tableView.rowHeight = 44; 2>在Xib或者Storyboard里面调整cell的高度,让它不等于44. 3>在tableview的delegate方法设置高度 - (CGFloat)tableView:(UI

桥边风满袖的博客 1万+

FreeRTOS:卡在configASSERT( ( pxQueue ) )问题的解决

FreeRTOS卡在configASSERT( ( pxQueue ) )问题的解决

qq_42007164的博客 9567

Allegro 16.6 高级技巧实战:用Region规则和动态间距搞定高密度连接器布局布线

本文深入探讨了Allegro 16.6在高密度连接器布局布线中的高级技巧,重点介绍了Region规则和动态间距属性的应用。通过局部规则覆盖和分层控制,解决0.5mm以下引脚间距的布线难题,提升PCB设计效率和质量。

weixin_30352645的博客 440

iOS之如何自适应TableViewCell的高度

1. 问题描述:     在项目中会遇到由于每个cell的图片和文本大小不一致,如果cell的height高度设置不合理的话,对用户体验不是很好。但是如果对cell的height高度设定死之后,当遇到大量文本的话也会出现问题。所以这就需要在每次对cell进行绘制的时候对cell的height进行计算,然后再绘制cell。但是一般情况下,这种对cell的height计算会比较负责。但是App

hackerzchao 1万+

35、使用 Geo 创建 GitLab 的分布式只读副本

本文详细介绍了如何使用GitLab Geo功能创建分布式只读副本,涵盖数据库主从配置、SSH密钥查找方式更改、通过Web UI添加从节点、激活哈希存储及状态检查等关键步骤。同时提供了常见问题解答和配置流程图,帮助用户快速部署并维护Geo集群,实现跨地域的高效数据同步与高可用架构。

chair的专栏 81

iOS UITableViewCell自适应高度单元格问题?

解决办法: 1>设置好模板单元格的自动布局  模板单元格中,subviews的自动局部必须要能够把单元格撑满。也就是说,iOS 必须能够通过内容的自动布局约束计算出 cell 的高。 根据cell的contentView中的各个子View计算出cell的正常高度,计算方式为:  cell 高度 = 第1个Label的top+第1个Label高度+第2个Label的top+第

桥边风满袖的博客 521

企业微信第三方应用014_企业微信5种第三方应用的安装方式_上架到应用市场_服务商后台点击安装测试_生成应用推广二维码安装---企业微信开发016

成员授权的意思就是,只要是这个成员扫码安装了这个应用,那么这个应用就只有这个成员可以用。安装的时候可以设置可见范围,这个地方可以设置整个公司或者是某个部门或者是某些人可以让这个应用来进行操作。创建了以后,这个二维码就可以发出来进行推广别人用户扫描了以后就可以把自己的企业微信给安装上对应的应用了。然后在对应的这个微信的企业后台就可以看到在第三方中有这个应用了。可以看到这个就是服务商的后台对应的一个应用,我们点击打开应用。可以看到这里有两个授权,一个是成员授权,一个是管理员授权。就可以去创建推广二维码了。

添柴程序猿的专栏 591

实战|2026美团&大众点评餐饮数据抓取:Playwright/Selenium反爬全攻略

核心结论:2026年美团&大众点评的反爬核心是“多维度风控”,需组合使用“住宅IP+设备指纹伪装+真人行为模拟+动态验证处理”,Playwright是最优工具,Selenium仅作为补充。效率优化:单机爬取速度建议控制在“每小时500-800条”,避免高频请求触发风控;分布式爬取需确保每个节点使用独立住宅IP,且行为轨迹不一致。扩展方向集成WASM解密工具,破解2026年美团的Token加密;用AI识别动态点选验证,提升验证通过率;对接大数据平台,对抓取的餐饮数据进行可视化分析。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2465

用 estimatedRowHeight 对UITableViewCell自动布局的问题?

iOS8中通过 UITableViewAutomaticDimension 常量支持自适应高度的单元格 self.tableView.estimatedRowHeight = 100; self.tableView.rowHeight = UITableViewAutomaticDimension; //此句可以省略 1. 必须使用 xib 或 storyBoard 约束

luckxing的博客 2345

2026年数学建模国赛B题无线电干扰源的快速自动定位与清除 论文详细解析

数学建模竞赛论文无线电干扰源的快速自动定位与清除2026 年高教社杯全国大学生数学建模竞赛 B 题完整求解论文交会定位、极大极小测点优化、自适应多频道搜索与定向源恢复的统一建模模型、算法、代码、图表与验证一体化交付本文研究圆形目标区域中多个未知无线电干扰源的快速检测、定位与清除问题,建立了由误差楔交会模型、角度观测信息模型、分层勘测模型、鲁棒射线交会模型和定向覆盖反馈模型组成的统一求解框架。模型同时覆盖题目中的四个子问题:多测向射线形成的多边形定位区域及直径、第二个测点的极大极小优选、全向源自动搜索清除策略

YOLO 360

用 estimatedRowHeight 对UITableViewCell自动布局的问题?

iOS8中通过 UITableViewAutomaticDimension 常量支持自适应高度的单元格 self.tableView.estimatedRowHeight =100; self.tableView.rowHeight =UITableViewAutomaticDimension;//此句可以省略 1. 必须使用 xib 或 storyBoa

jueyi1127的博客 582

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

swift实作app 交流分享八(self sizing cells)

一行代码一场梦,大家好我是阿达,今天要跟大家分享的是 iOS8 的一个非常酷炫的新功能『Self sizing Cells』,对于这个 SDK 来说,这真的是一个非常令人兴奋的功能。不过坦白说,这个部分是阿达当初接触 iOS8 开发学习的时候最大的难关,因为这个部分之前都没有,找不到可以参考的东西,而且做起来步骤又有点复杂,到后来整个专案删掉重新再做,有的时候一个晚上就为了调整一个cell

Xernaga的博客 833

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ExpandableCell与AutoLayout:实现自适应高度的折叠单元格终极指南

在iOS应用开发中,实现优雅的折叠展开功能是提升用户体验的关键技术之一。ExpandableCell作为一款优秀的Swift库,结合AutoLayout的强大能力,为开发者提供了简单高效的折叠单元格解决方案。本文将深入探讨如何使用ExpandableCell与AutoLayout实现完美的自适应高度折叠效果,帮助您快速掌握这一实用技术。 ## 为什么选择ExpandableCell?🚀 Ex

gitblog_00611的博客 942

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

TableViewCell 高度自适应(ios7 及 ios8)

#TableViewCell 高度自适应 实现方式 设置单元格约束 在UITableViewCell子类中,添加约束,使子视图的边缘与contentView的边缘固定(pin)(最重要的是要有顶部和底部的边距约束)。 注意:不能将子视图的边缘设置成与cell的边缘固定,只能设置为与cont...

chengqiwo1585的博客 133

自适应高度的表格UICollectionView

自适应高度的表格UICollectionView 1.设置预估高度:flowLayout.estimatedItemSize = CGSizeMake((SCREEN_WIDTH-0*2), (50));//UICollectionViewFlowLayoutAutomaticSize;// 自适应 不设置预估高度表格显示不出来); 2.不设置表格高度; 3.表格设置为自适应高度。......

jia12216的专栏 2013

使用了Autolayout的UITableViewCell动态布局和高度动态改变自适应

学习的原文:http://blog.163.com/china_uv/blog/static/1171372672014111681232340/ 首先我使用了xib来自定义cell,并且给cell添加好了约束 此处要注意,所有控件必须添加到ContentView上 一定要使cell上的子视图的边缘固定到ContentView上面,特别是顶部和底部的边距约束

zxc523341577的博客 2242

ios8 Autolayout实现uitableviewcell 高度自适应

github 学习网址    https://github.com/xhzengAIB/iOS8SelfSizingCells 在iOS8以下,如果需要实现一个不同高度的Cell,那需要你手动动态计算高度,这便是一个繁琐的事情,而且富有挑战性,需要把空间复杂度转换为时间复杂度之类的优化。而在iOS8新的SDK里面提供了self sizing cells新功能,已经不再需要手动计算高度啦!

changwen6 1556
上一篇: 如何使用Core Plot绘制直方图和折线图
下一篇: 如何使用TCP/IP与服务器进行通信-一个简单的聊天程序
普通网友
博客等级 码龄8年 4粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值