今天,我意识到对于MVC,我们可以构建Model
,我们可以使用我们的Controller
。但是,似乎我没有尝试设计自己的View
,而只是使用IOS SDK提供的默认View
。
请您考虑一下这个案例: 考虑tableView的标题,
1.我想在其中放一个按钮
2.并使标题更大,以包含一些细节标签。
3.也让Header的背景变为UIColor.blueColor()
我尝试创建一个类(MyHeaderView
)扩展形式UITableViewHeaderFooterView
,我知道MyTableViewController
中有一个属性是Header
的条目我可以为自己的设计类对象分配一个新对象 - MyHeaderView
。我对吗?这就是我的想法,但我只是尝试了第三个要求(将背景改为蓝色):
在MyHeaderView
内,我定义了一个函数:
class MyHeaderView: UITableViewHeaderFooterView {
func change(){
self.backgroundColor = UIColor.blackColor()
}
}
和里面
class MyTableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
let frame = CGRectMake(0, 0, 1000, 1000)// Big enough!
var a = MyHeaderView(frame: frame)
a.change()
self.view.addSubview(a)// To be frank, I believe this statement is not right for achieving this requirement
}
}
有人能告诉我一些关于如何自定义我自己的观点的信息! 谢谢! (如果我不清楚自己,请帮助我指出:D我 将尽快提供更多详细信息)
答案 0 :(得分:2)
我想你可能有兴趣阅读这本书"编程iOS 9"作者:Matt Neuburg,特别是分章"表视图和集合视图"。
单元格页眉或页脚分别出现在单元格之间,分段的第一行之前或部分的最后一行之后。
不要将页眉和页脚与页面的页眉和页脚整体混淆。后者是表视图本身的视图属性,它的 tableHeaderView 和 tableFooterView 。只有当表格一直向下滚动时才会出现表头;只有当表格一直向上滚动时,才会显示表格页脚。
因此,回到您尝试自定义表格部分视图(我假设的),您可能会发现这些提取的信息很有用:
UITableViewHeaderFooterView 类是一个 UIView 子类,专门用作页眉或页脚的视图;很像一个表视图单元格,它是可重用的。它具有以下属性:
实现委托方法 tableView:viewForHeaderInSection:或tableView:viewForFooterInSection :(或两者)。您提供的视图用作整个页眉或页脚,并自动调整为表格的宽度和节页眉或页脚高度。
您不需要返回 UITableViewHeaderFooterView ,但您可能希望这样做,以便利用可重用性。要做到这一点,程序就像使细胞可重复使用一样。您可以通过调用 registerClass:forHeaderFooterViewReuseIdentifier:预先注册表视图。要提供可重用的视图,请发送表视图 dequeueReusableHeaderFooterViewWithIdentifier:;结果将是新实例化的视图或重用的视图。
此外,两对委托方法允许您对页眉或页脚视图执行最终配置:
tableView:willDisplayHeaderView:forSection:
tableView:willDisplayFooterView:forSection:
和
tableView:heightForHeaderInSection:
tableView:heightForFooterInSection:
作为奖金,Matt警告的另一个怪癖是:
不要设置UITableViewHeaderFooterView的backgroundColor;相反,设置其contentView的backgroundColor,或者指定backgroundView并根据需要进行配置。另外,设置其tintColor无效。
答案 1 :(得分:1)
您可以在Interface Builder中执行此操作。
只需在表格视图的上方和下方拖动UIView,更改背景颜色,高度,添加IBOutlets等。