iOS-UITableView学习笔记

2018-08-03  本文已影响0人  梦醉荼靡

tableview 的cell点击事件
不重复使用的cell需要单独定义并实现跳转二级界面

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        // 不加此句时,在二级界面点击返回时,此行会由选中状态慢慢变成非选中状态。
        // 加上此句,返回时直接就是非选中状态。
        tableView.deselectRow(at: indexPath as IndexPath, animated: true)
        var vc = accountDetailViewController()
        switch indexPath.row {
        case 1:
             vc = accountDetailViewController()
            break
        case 2:
            
            break
        case 3:
            
            break
    
        default:
            break
        }
         self.navigationController?.pushViewController(vc, animated: true)
    }

重复使用的cell点击事件直接传值跳转二级界面可返回

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let cell = tableView.cellForRow(at: indexPath) as! homeTableViewCell
        let vc = homeInfoViewController()
        vc.view.backgroundColor = UIColor.white
        self.navigationController?.pushViewController(vc, animated: true)

手动隐藏导航条

 //隐藏导航条
      self.navigationController?.isNavigationBarHidden = true

设置tableview自定义cell 无论是storyboard还是xib文件中,一定要在对应的cell名称,才能实现跳转和对应cell的显示


2DF1869D-9E32-45BF-A554-E6A930D85849.png 7D2DDB3A-5387-42C3-8572-BCD82422D6A7.png
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: messageCellID) as! accountTableViewCell
        let setting = settings[indexPath.section] as! [accountInfo]
        cell.setting = setting[indexPath.row]
        return cell
    }
//空cell
let cell = UITableViewCell(style: .default, reuseIdentifier: "cell")
        return cell

自定义的tableview注册的方式

//注册tableview
 tableview = UITableView.init(frame:CGRect.init(x: 0, y: 105, width: 375, height: 603),style:UITableViewStyle.plain)
//注册自定义xib文件的cell
        let lnib = UINib(nibName: String(describing: TableViewCell.self), bundle: nil)
        tableview.register(lnib, forCellReuseIdentifier: StarsCellID)
//注册storyboard的cell
 // self.tableView!.register(TableViewCell().classForCoder, forCellReuseIdentifier: StarsCellID)

tableview使用的时候需要绑定数据源

 self.tableView!.delegate = self
 self.tableView!.dataSource = self

这次使用的显示两个界面的方式是设置tableview的head

tableView.tableHeaderView = headerView
private lazy var headerView: ScrollView = {
       var headerView : ScrollView! = nil
        headerView = ScrollView.init(frame: .init(x: 0, y: 0, width: SCREENW, height: 250), ImagesArr: ["img01","img_01","img_01","img_01","img_01"])
        headerView.delegate = self
        self.view.addSubview(headerView)
        return headerView
    }()

刷新控件使用的是第三方库http://www.hangge.com/blog/cache/detail_1407.html

上一篇下一篇

猜你喜欢

热点阅读