美文网首页
Cell顶头分割线

Cell顶头分割线

作者: FredYJH | 来源:发表于2017-01-04 10:34 被阅读25次
    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
        //    }
        }
    

    相关文章

      网友评论

          本文标题:Cell顶头分割线

          本文链接:https://www.haomeiwen.com/subject/yjjovttx.html