tableView自适应高度

效果图:

源码:

class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {

    var tableView:UITableView?

    override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib. setupTableView()
} func setupTableView() {
tableView = UITableView(frame: view.bounds, style: .plain)
tableView?.delegate = self;
tableView?.dataSource = self; tableView?.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
tableView?.register(UINib.init(nibName: "customCell", bundle: nil), forCellReuseIdentifier: "customCell") view.addSubview(tableView!)
tableView?.estimatedRowHeight = 44.0
tableView?.rowHeight = UITableViewAutomaticDimension
} func numberOfSections(in tableView: UITableView) -> Int {
return 1
} func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
} func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "customCell", for: indexPath) as! customCell
// 制造假数据使之cell的高度不固定
if indexPath.row%2==0
{
cell.lb.text = "rewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrew";
}
else
{
if indexPath.row%3==0 {
cell.lb.text = "rewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrewrew";
}
else
{
cell.lb.text = "sddfdfsdrewrewrewrewrsf";
}
}
return cell;
} func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("当前选中了\(indexPath.row)行")
}
}

xib布局介绍 :

1.上面label layout



2.下面label2 layout (label2可以显示多行numberOfLines = 0 )



关键代码:利用tableView自带的自适应高度的方法

        tableView?.estimatedRowHeight = 44.0
tableView?.rowHeight = UITableViewAutomaticDimension

swift学习 - tableView自适应高度1(xib autoLayout)的更多相关文章

  1. swift学习 - tableView自适应高度2(SnapKit Layout)

    SnapKit是Swift中自动布局的框架,相当于Objective-C中的Masonry 下面是tableView自定义cell,使用SnapKit布局的效果图: 详细代码如下: TYCustomC ...

  2. 【swift学习笔记】三.使用xib自定义UITableViewCell

    使用xib自定义tableviewCell看一下效果图 1.自定义列 新建一个xib文件 carTblCell,拖放一个UITableViewCell,再拖放一个图片和一个文本框到tableviewc ...

  3. 纯代码TableView自适应高度(很老的使用方法)

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{    return  ...

  4. TableView cell自适应高度-----xib

    1.通过xib创建一个cell,将label进行上左下右,进行适配, self.automaticallyAdjustsScrollViewInsets = NO; self.edgesForExte ...

  5. IOS Swift语言开发 tableView的重用以及自cell的自适应高度

    http://www.aichengxu.com/iOS/11143168.htm 一.准备数据 (这是一个元组,第一个元素为英雄的名字;第二个元素为英雄头像图片的名字,格式为.PNG,如果为其他的格 ...

  6. [Swift通天遁地]二、表格表单-(12)设置表单文字对齐方式以及自适应高度的文本区域TextArea

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  7. 让tableView的高度等于contentSize的高度、动态调整tableView的高度、tableView的高度自适应布局

    文章概要: 1.简介下,tableView中的内容如何高度自适应的布局 2.如何做到让tableView的高度动态调整 还是看图作文吧- 首先,tableView的高度就是用户能够看见里面更大世界的那 ...

  8. Cell自适应高度及自定义cell混合使…

    第一部分:UItableViewCellAdaptionForHeight : cell的自适应高度 第二部分:CustomTableViewCell:自定义cell的混合使用(以简单通讯录为例) = ...

  9. iOS - UITextView放在自定义cell里面-自适应高度

    textView放在自定义cell里面-自适应高度 1,textView有个属性 scrollEnabled  要设置为NO; 2,设置tableview的时候  添加这两行代码: self.tabl ...

随机推荐

  1. cocoapods安装好后repo换源

    1.pod repo 然后会出现以下内容,如下是我已经换了之后的,而你的URL还是github的 master - Type: git (master) - URL:  https://git.cod ...

  2. Windows下JIRA6.3.6安装、汉化、破解

    一.MySQL建库和建账号 1. mysql中创建数据库jiradb create database jiradb character set 'UTF8'; 2.创建数据库用户并赋于权限 creat ...

  3. CSS 预处理器中的循环

    本文由 nzbin 翻译,黄利民 校稿.未经许可,禁止转载! 英文出处:css-tricks.com 发表地址:http://web.jobbole.com/91016/ 如果你看过老的科幻电影,你一 ...

  4. 【shell编程基础1】shell变量篇

    Bash shell bash shell 是bourne shell 的升级版,“bourne again shell”.ubuntu的默认shell. 预备知识 1. "#!" ...

  5. virtual box ubuntu 与Windows共享文件夹

    由于懒得去截图了,直接抛链接.参考链接:http://www.cnblogs.com/lidabo/p/5317024.html 简介概括:首先安装增强功能,接着在virtual box的seting ...

  6. ADO.NET 参数化查询

    参数化查询 使用参数化查询的情景有很多,但最常用的情景是需要用户在查询中进行输入的情况. 有两种方法可供使用.第一,可以讲用户输入嵌入到查询字符串中,例如可能使用.NET Framework中的Str ...

  7. 【原】Unity Shader VS UDK Material Editor

    UDK 的材质编辑器十分好用,毕竟是所见即所得的.虽然unity也有类似第三方插件,但易用性还是差很多,下面主要是,把一些常见表达式概念对应起来. 1. UDK CameraVector (相机位向量 ...

  8. php操作memcache缓存基本方法

    memcache 是一个高效的分布式的内存对象缓存系统,他可以支持把php的各种数据(数组,对象,基本数据类型)放在它管理的内存中 1.代码使用 <?php //连接 $mem = new Me ...

  9. Springmvc的工作流程

    1.向服务器发送http请求,请求被前端控制器DispatcherServlet捕获. 2.DispatcherServlet根据servlet.xml中的配置进行URL解析后,得到(URL),然后根 ...

  10. 【代码学习】MYSQL数据库的常见操作

    ---恢复内容开始--- ============================== MYSQL数据库的常见操作 ============================== 一.mysql的连接与 ...