zoukankan      html  css  js  c++  java
  • swift学习

    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
    
  • 相关阅读:
    表单制作注意事项
    【学习笔记】SIFT尺度不变特征 (配合UCF-CRCV课程视频)
    【图片匹配】--- SIFT_Opencv3.1.0_C++_ubuntu
    【LeetCode】297. Serialize and Deserialize Binary Tree
    【LeetCode】树的遍历
    【LeetCode 33】Search in Rotated Sorted Array
    ubuntu14.04 + GTX980ti + cuda 8.0 ---Opencv3.1.0(基础+opecv_contrib)配置
    [完美方案+无懈可击]ubuntu 14.04(LTS) + GTX 980Ti显卡配置
    OpenCV2.4.9 + Ubuntu15.04配置
    每天学点linux命令之locate 与 find 命令
  • 原文地址:https://www.cnblogs.com/qqcc1388/p/6490419.html
Copyright © 2011-2022 走看看