自定义UITableViewCell
自定义一个UITableViewCell, 需要定义一个类,继承UITableViewCell即可,而实现高度自适应,只需要设置UITableView的两个属性即可:
// 预估行高
self.tableView.estimatedRowHeight = 100
// 行高自动测量
self.tableView.rowHeight = UITableViewAutomaticDimension
今天, 我们实现一个历史上的今天的小案例:
1. 历史上的今天的数据:
我们查看的是MobApI 的接口
接口地址:http://apicloud.mob.com/appstore/history/query
支持格式:JSON
请求方式:GET
请求示例:http://apicloud.mob.com/appstore/history/query?key=123456&day=1231
调试工具:API测试工具
备注说明:根据日期查询历史上的今天
请求参数:
名称 类型 必填 说明
key string 是 用户申请的appkey
day string 是 日期(格式:MMdd)
JSON返回示例:
{
"msg": "success",
"retCode": "200",
"result": [
{
"date": "19821231",
"day": 31,
"event": "1982年12月31日加纳陆军接管了政权。\n加纳新的军人领袖罗林斯这天在电台发表讲话说,加纳陆军已经接管了1979年9月执政的利曼总统的政府,开始执政。这是罗林斯在三年内第二次掌权。\n",
"id": "569881b8590146d407333528",
"month": 12,
"title": "加纳发生军事政变"
},
{
"date": "19531231",
"day": 31,
"event": "1953年12月31日。一支由英国发起的寻找谜一般的“雪人”的探险队已到达印度,准备的往尼泊尔。6个月前曾征服喜马拉雅山的埃德蒙·希拉里说,他在早期对喜马拉雅山进行探险时就看见过奇怪的,长着长发的动物的足迹。\n",
"id": "569881b8590146d407333529",
"month": 12,
"title": "搜寻“雪人”的工作开始进行"
},
{
"date": "19471231",
"day": 31,
"event": "1947年12月31日,罗马尼亚国王迈克尔在苏联支持的共产党人的压力下被迫退位,红色帷幕至此覆盖了整个东欧。这个正在度假的东欧的最后一个君主迈克尔被迅速叫回国,并由总统戈查向他递交了让位证书。\n",
"id": "569881b8590146d40733352a",
"month": 12,
"title": "罗马尼亚王朝倒台"
}
]
}
我们只用显示时间和标题和事件即可
我们可以定义一个Model, 用于存储数据:
class HistoryModel: NSObject {
// 时间
var time: String
// 标题
var title: String
// 事件
var event: String
init(event: String, title: String, time: String) {
self.time = time
self.title = title
self.event = event
}
}
2. 实现自定义cell
我们实现一个MyCell的自定义类, 用于展示我们的内容:
import UIKit
import SnapKit
class MyCell: UITableViewCell {
// 时间
var timeLabel: UILabel!
// 标题
var titleLabel: UILabel!
// 事件
var eventLabel: UILabel!
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
initUI()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
func initUI() {
self