美文网首页
Day 2 - TableView

Day 2 - TableView

作者: Codepgq | 来源:发表于2016-09-07 16:08 被阅读45次

    先上效果图

    效果图

    1、搭建UI

    新建工程后,在Main.Stroyboard中拖入一个TableView和一个Button,设置约束,颜色后如下:


    UI效果图

    2、拖线

    先拖属性


    属性

    依次拖线


    tableVIew,button

    最后在为button添加Action、


    button

    OK 布局到这里就完成了

    3、创建数据源、设置代理、实现代理方法,设置按钮样式

    • 3.1 创建数据源
    var data : Array? = ["Day 2 TableView", "每天学习多一点", "每天累积一点点", "暗号:天王盖地虎", "🤗 😡 💔See you next Project", "Learning Swift","纸巾艺术","参考网络学习资料"]
    解释:创建了一个变量名为data,类型为数组的数据源
    
    • 3.2 设置代理
    tableView.dataSource = self
    tableView.delegate = self
    

    这个时候会报错,找不到delegate、dataSource
    导入代理

    class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource 
    

    这个时候还是会报错,因为没有实现代理

    • 3.3 实现代理
      在tableView中必须实现的代理有两个:
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return data!.count
        }
    
    第一个在某个section内有多少个Cell,如果不实现
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
            这里返回有多少个section
        }
    return data!.count 返回data的个数 
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
            
            let cell = tableView.dequeueReusableCellWithIdentifier("FontCell", forIndexPath: indexPath)
            
            let text = data![indexPath.row]
            
            cell.backgroundColor? = UIColor.blackColor();
            cell.textLabel?.text = text
            cell.textLabel?.textColor = UIColor.whiteColor()
            
            return cell
            
        }
    line 1:let cell... 这个是用复用池中获取cell 是用这个方法必须要提前注册,否则会报错
    所以还需要在设置Viewdidload中写上:
    tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "FontCell"); 
    这里注意Identifier这个参数名中的字符串要保持一致
    let text:这里从数组中获取数据
    back..Color:设置背景颜色
    t..Label.text :设置文字
    ...textColor:文字颜色
    

    3.4 设置按钮样式

    changeBtn.layer.cornerRadius = 50
    这里设置成为你按钮宽度的一半,宽高保持一致
    比如宽高 100 100 那么久设置 50
    

    <br />
    此时你运行就能看到效果了,但是你点击按钮还不能改变字体
    <br />

    4、改变字体

    我们并不知道有哪些字体,系统提供的字体很多,我们可以用过一个方法遍历出来

    for family in UIFont.familyNames() {
                for font in UIFont.fontNamesForFamilyName(family){
                    print(font)
                }
            }
    

    这个for循环能把所有的字体名称遍历出来,我们只要从里面随便抽取几个名称组成一个数组,然后每次点击对tableView.cell设置不同的字体,并且刷新就能看到效果了

    var fontNames = ["MFJinHei_Noncommercial-Regular", "PingFangSC-Thin", "KhmerSangamMN","Baskerville-SemiBold","Cochin-BoldItalic"]
    

    在设置颜色后面添加

    在申明两个变量

    var fontRowIndex = 0
        
    var add = 0
    
    ....textColor =  UIColor.whiteColor()
    cell.textLabel?.font = UIFont(name:self.fontNames[fontRowIndex], size:20)
    

    现在只需要在按钮的点击事件中处理就行了

    @IBAction func change(sender: UIButton) {
            
            add += 1
            fontRowIndex = add % fontNames.count;
            tableView.reloadData();
        }
    tableView.reloadData();刷新
    

    到这里就完成啦,赶紧运行看一看吧!

    相关文章

      网友评论

          本文标题:Day 2 - TableView

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