我制作了一个带有原型细胞的TableView;在tableView的第一个位置我做了这个
override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if section == 0
{
let view : UIView = UIView(frame: CGRectMake(0, 0, 400, 140))
view.backgroundColor = UIColor.redColor()
view.addSubview(populateView())
//populateView() is a method by which I programmatically made all object in the view (label, images, textView)
return view
}
else
{
return nil
}
}
override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
{
if section == 0
{
return 140
} else
{
return 0
}
}
现在我想让TableHeaderView不与tableView一起滚动;我把tableView样式做成了简单的;我发现了这个Change Default Scrolling Behavior of UITableView Section Header和https://corecocoa.wordpress.com/2011/09/17/how-to-disable-floating-header-in-uitableview/,但我不知道Objective-c(我从6个月开始就是快速的程序员)。任何人都可以解决我的问题吗?
答案 0 :(得分:3)
解决方案是使用UIViewController
,而不是UITableViewController
。表视图控制器将声明整个view
并且上面没有空格。
相反,您必须使用UIViewController
,添加子视图作为标题,并添加UITableView
作为子视图。您可以通过显式包含数据源和委托协议来填充它并与之交互。
class HeaderTableViewController : UIViewController,
UITableViewDataSource, UITableViewDelegate
答案 1 :(得分:3)