文档章节

Swfit:Cell自适应

低绮户照无眠
 低绮户照无眠
发布于 2017/03/24 14:02
字数 249
阅读 8
收藏 0

 

比如要用一个Label显示标题,但是标题可能是多行也可能是一行。那么可以通过计算添加了对应文字的label的高度,来更新cell的高度。

1.首先要获取当前tableView用来展示的数据。

对应V2里的topicList变量。topicList是一个数组,其中每个元素对应一个cell。

2.在heightForRowAt方法里创建一个label,这个label的属性设置要和用于展示cell数据的label一样。现在我们根据indexPath.row来获取对应的标题数据,然后把标题数据添加到label后,计算label的高度。获取的高度就是动态高度了。

 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        let topicModel = self.topicList?[indexPath.row]
        let title = topicModel?.topicTitle
        
        //cell自适应
        let label = UILabel()
        label.font = UIFont.systemFont(ofSize: 18)
        label.text = title
        label.numberOfLines = 0
        let height = label.sizeThatFits(CGSize.init(width: tableView.frame.size.width - 12, height: 9999)).height
        
        //          上间隔     头像高度    头像下间隔    标题高度      标题间隔    cell间隔
        return       12.0       + 35 +        12 +   height   +   12    +     8
        
    }

 

© 著作权归作者所有

低绮户照无眠
粉丝 1
博文 6
码字总数 3409
作品 0
私信 提问
Apple Watch学习之路 基础控件学习

工欲善其事必先利其器,watch中基本控件的学习是写watch app的基石 WatchKit中的控件都继承自WKInterfaceObject,都以WKInterface开头。下面是apple watch 常用的控件: source demo 传送门:...

wongstar
2017/12/14
0
0
如何收起和展开UITableView Sections

这是一个简单的iOS swift项目,旨在介绍如何实现可收起和展开的table section,并且,项目不需要main storyboard, XIB, 注册nib等,只需要纯的Swfit代码! 项目源代码:https://github.com/...

jeantimex
2016/10/03
730
0
《Swift入门》关于Swift

关于Swift Swift 是一门新的编程语言,用于编写 iOS 和 OS X 应用程序。Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。Swift 使用安全的编程模式并添加了很多新特性,这将使编...

微wx笑
2016/04/05
0
0
Swift 正式开源, 包括 Swift 核心库和包管理器

Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章。自从苹果发布 Swfit 编程语言,就成为了历史上发展最快的编程语言之一。Swift 通过设计使得软件编写更加快速更加安全。 Swift ...

oschina
2015/12/04
18.6K
94
UITableViewCell的高度缓存

让UITableViewCell高度自适应的方法有两种 1、对UITableView进行设置 2、通过代理返回 使用自适应高度时,在Cell每次即将被展示出来的时候都会调用Cell中的 ⬇️方法进行计算。 但是系统计算...

侯航磊
2018/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
6
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
7
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
5
0
OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
1K
11
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
40
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部