使 TableHeaderView 不滚动
Make a TableHeaderView not scrolling
我制作了一个带有原型单元格的 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 and this https://corecocoa.wordpress.com/2011/09/17/how-to-disable-floating-header-in-uitableview/ 但我不知道 Objective-c(我成为 swift 程序员才 6 个月)。谁能解决我的问题?
解决方案是使用 UIViewController
,而不是 UITableViewController
。 table 视图控制器将声明整个 view
而上面没有 space。
相反,您必须使用 UIViewController
,添加一个子视图作为 header,并添加一个 UITableView
作为子视图。您可以通过显式包含数据源和委托协议来填充它并与之交互。
class HeaderTableViewController : UIViewController,
UITableViewDataSource, UITableViewDelegate
我肯定会使用带有 UITableView 和自定义视图的 UIViewController(见下文)。
或者,如果您想使用 UITableViewController(它带来了一些额外的功能),您可以使用容器视图将其嵌入 header。
我制作了一个带有原型单元格的 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 and this https://corecocoa.wordpress.com/2011/09/17/how-to-disable-floating-header-in-uitableview/ 但我不知道 Objective-c(我成为 swift 程序员才 6 个月)。谁能解决我的问题?
解决方案是使用 UIViewController
,而不是 UITableViewController
。 table 视图控制器将声明整个 view
而上面没有 space。
相反,您必须使用 UIViewController
,添加一个子视图作为 header,并添加一个 UITableView
作为子视图。您可以通过显式包含数据源和委托协议来填充它并与之交互。
class HeaderTableViewController : UIViewController,
UITableViewDataSource, UITableViewDelegate
我肯定会使用带有 UITableView 和自定义视图的 UIViewController(见下文)。
或者,如果您想使用 UITableViewController(它带来了一些额外的功能),您可以使用容器视图将其嵌入 header。