8.怎么写一个定制的Row?
我们打算写一个App中常用的显示用户头像的Row,仅此而已.
这只需3步!
其实一般来说,对于一些简单的Row我们可以将其中几步合并到一起,只需2甚至1步就可以,不过这里为了说明清楚,我们还是规规矩矩的将其分开.
- 第一步:创建一个Model
这个Model对应Row中的Value类型.创建UserLogo.swift文件,设置其为如下内容:
struct UserLogo:Equatable{ var borderColor:UIColor? var image:UIImage? } func ==(lhs: UserLogo, rhs: UserLogo) -> Bool { if lhs.image == nil,rhs.image == nil{ return true } if lhs.image != nil || rhs.image != nil{ return false } return lhs.image!.hash == rhs.image!.hash }
我们只需要一个遵守Equatable协议的结构即可(结构能搞定的还需要类吗?),因为我们后面需要修改用户头像以及头像头像边框的颜色,所以只要2个属性就可以.
- 第二步:创建Cell类
这个Cell自然需要一个界面.嗯,它一个xib文件.在Xcode中生成一个名为UserLogoCell,派生自UITableViewCell的类,同时勾选创建xib文件.
这样会创建2个文件:UserLogoCell.xib和UserLogoCell.swift.
我们首先来搞定界面!在IB中将Cell高度调整的大一些,然后在其中添加一个UIImageView,同时设置好