Cell顶头分割线

2017-01-04  本文已影响25人  FredYJH
import UIKit

    class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {

        let textValue: NSString = "hellohelloclass ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource "
        var myTableView = UITableView()

        // 记录该行numberOfLines状态
        var dict = [String:String]()
        
        override func viewDidLoad() {
            super.viewDidLoad()
            myTableView = UITableView(frame: self.view.frame, style: .plain)

            myTableView.delegate = self
            myTableView.dataSource = self
            myTableView.tableFooterView = UIView()
            self.view.addSubview(myTableView)
            
            // ios 8以后自动适配
            myTableView.estimatedRowHeight = 60
            myTableView.rowHeight = UITableViewAutomaticDimension
        }
        func numberOfSections(in tableView: UITableView) -> Int {
            return 1
        }
        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return 20
        }
        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            let cell = UITableViewCell(style: .default, reuseIdentifier: "Cell")
            cell.textLabel?.text = textValue as String
            if dict[String(indexPath.row)] == "0" {
                cell.textLabel?.numberOfLines = 0
            } else {
                cell.textLabel?.numberOfLines = 1
            }
            return cell
        }
        
        func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
            let cell = tableView.cellForRow(at: indexPath)
            
            tableView.beginUpdates()
            if cell?.textLabel?.numberOfLines == 0 {
                cell?.textLabel?.numberOfLines = 1
                dict[String(indexPath.row)] = "1"
            } else {
                cell?.textLabel?.numberOfLines = 0
                dict[String(indexPath.row)] = "0"
            }
            tableView.endUpdates()
        }
        
        // 分割线顶头
        override func viewDidLayoutSubviews() {
            
            myTableView.separatorInset = UIEdgeInsets.zero
            myTableView.layoutMargins = UIEdgeInsets.zero
        }
        func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
            cell.separatorInset = UIEdgeInsets.zero
            cell.layoutMargins = UIEdgeInsets.zero
        }
        // 返回cell的高度
    //    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    //        
    //        let arr = [NSFontAttributeName:UIFont.systemFont(ofSize: 17)]
    //        
    //        let rect = textValue.boundingRect(with: CGSize(width : 300, height : 0), options: .usesLineFragmentOrigin, attributes: arr, context: nil)
    //        
    //        return rect.size.height
    //    }
    }
上一篇下一篇

猜你喜欢

热点阅读