Day 2 - TableView

2016-09-07  本文已影响45人  Codepgq

先上效果图

效果图

1、搭建UI

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


UI效果图

2、拖线

先拖属性


属性

依次拖线


tableVIew,button

最后在为button添加Action、


button

OK 布局到这里就完成了

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

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

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

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource 

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

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();刷新

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

上一篇下一篇

猜你喜欢

热点阅读