怎样使用系统的tableView

在这篇文章中我会记录下怎么使用系统提供的tableView实现简单的设置页面

var tableView :UITableView?//声明tableView
var listArr = ["企业编号","用户账号","手机号码","邮箱地址","修改密码","退出登录"]//定义一个列表的数组
    override func viewDidLoad() {
        super.viewDidLoad()
        self.title = "账号安全"
        setupUI()
    }
    //页面初始化
    func setupUI() {
        self.view.backgroundColor = UIColor.white
        //tableView有两种style 一个是plain 一个是grouped
        tableView = UITableView(frame: self.view.frame, style: UITableViewStyle.plain)
        //设置代理
        tableView?.delegate = self
        tableView?.dataSource = self
        tableView?.backgroundColor = UIColor.init(valueRGB: 0xf0f2fa)
        tableView?.tableFooterView = UIView(frame: CGRect.zero)//这个很重要作用是把tableView没有用到的cell去掉
        self.view.addSubview(tableView!)
        
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    
    //MARK:- TABLEVIEW代理方法
    //这里顺便说一下注释的其中一种方式     MAKE:- 这里是你要写的信息
    func numberOfSections(in tableView: UITableView) -> Int {
        return 4
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        switch section {
        case 0:
            return 2
        case 1:
            return 2
        case 2:
            return 1
        default:
            return 1
        }
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        var cell = tableView.dequeueReusableCell(withIdentifier: "cell")//首先要声明 一个cell
        if (cell == nil) {//在这里完成了cell的复用
            cell = UITableViewCell(style: UITableViewCellStyle.value1, reuseIdentifier: "cell")
//这里的写法就等于以注册方式实现的复用 因为要用到系统的cell样式 所以就自己写复用
//tableView?.register(UITableViewCell.self, forCellReuseIdentifier: "cell") //当然这行要写在didload里
//var cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        }//如果要使用detailLabel就不能用cellstyle.default,我这里使用的是value1 其他两种样式可以自己试下
        
        //根据组tag 显示不同的内容,系统提供的value1的cell样式有两个Label 一个是左边的textLabel 一个是右边的detailTextLabel
        switch indexPath.section {
        case 0:
            cell?.textLabel?.text = listArr[indexPath.row]
            cell?.textLabel?.font = UIFont.systemFont(ofSize: 16)//设置字号
            cell?.detailTextLabel?.textAlignment = NSTextAlignment.right//设置字体对齐方式
            switch indexPath.row {
            case 0:
                cell?.detailTextLabel?.text = "hpqk"//右边Label显示的内容
            default:
                cell?.detailTextLabel?.text = "lihang"
            }
        case 1:
            cell?.textLabel?.text = listArr[indexPath.row+2]
            cell?.detailTextLabel?.textAlignment = NSTextAlignment.right
            cell?.accessoryType = UITableViewCellAccessoryType.disclosureIndicator//这的意思是在cell上设置一个右三角
            switch indexPath.row {
            case 0:
                cell?.detailTextLabel?.text = "13263264031"
            default:
                cell?.detailTextLabel?.text = "hangliwill@163.com"
            }
        case 2:
            cell?.textLabel?.text = listArr[4]
            cell?.accessoryType = UITableViewCellAccessoryType.disclosureIndicator
        default://因为最后一组我需要自定义所以在cell上添加了一个居中的Label
            let quitLB = UILabel(frame: CGRect(x: (SCREEN_WIDTH-80)/2, y: 13.35, width: 80, height: 16))
            quitLB.textColor = UIColor.red
            quitLB.textAlignment = NSTextAlignment.center
            quitLB.text = listArr[5]
            cell?.addSubview(quitLB)//记得一定要添加到cell上
            cell?.separatorInset = UIEdgeInsetsMake(0, 0, 0, (cell?.bounds.size.width)!*2)//这里是把最后一个cell的分割线挪出屏幕 spearatorinset的作用是设置cell分割线的位置
        }
        
        
        return cell!
    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 42.7//返回的行高
    }
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 10//返回的组头高度
    }
    //自定义组头想要改变组头的颜色或加图标啊 什么的就需要自定义了
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        //首先你要自定义一个view
        let headerSctionView = UIView(frame: CGRect(x: 0, y: 0, width: SCREEN_WIDTH, height: 10))
        headerSctionView.backgroundColor = UIColor.init(valueRGB: 0xf0f2fa)
        //这里可以添加各种控件并把他们添加到你自定的view上,最后返回view就可以了
//        let icon = UILabel(frame: CGRect(x: <#T##CGFloat#>, y: <#T##CGFloat#>, width: <#T##CGFloat#>, height: <#T##CGFloat#>))
//        headerSctionView.addSubview(icon!)
        return headerSctionView
        
    }
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,401评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,016评论 4 62
  • 再过三天 即将离开深圳 当初 心之向往的城市,将带着这份憧憬飞往杭州。 ...
    穆清yvonne阅读 155评论 2 1
  • ​ 今天酷哥给各位带来的是: 一位不著名的画家兼设计师 波兰画家 Rafal Olbinski 的作品 他的作品被...
    画酷阅读 477评论 0 0
  • 昨天晚上老板开会,然后就开始了对抗模式。 早上司机师傅说,给我评个五星。我突然有种被命令的感觉,我不喜欢这种感觉,...
    艳敏姐阅读 115评论 0 0