我正在尝试创建一个tableview,它在tableview中间启动标题,然后可以使用添加的tableView Cells向上滚动到顶部然后停止,然后tableview单元格可以滚动"在& #34;它。我得到的标题位于tableview的中间,但tableView Cells只是在它上面滚动,标题并没有真正滚动到顶部。它只是停留在原地。我希望能够在滚动列表时让标题移动,然后在它到达列表顶部时停止,然后只是之后移动的tableView单元格。
我使用的是最新版本的XCode
答案 0 :(得分:33)
答案 1 :(得分:1)
您可以使用部分来完成。如果我正确理解你的问题,你想要做的是,你必须在屏幕中间显示标题,同时在标题上方有一些单元格,标题下方有一些单元格,当你滚动tableView时,你的标题应滚动顶部,当它到达顶部时,您希望标题保持在顶部,而单元格应在标题下方滚动。
所以这样做会从数据源中返回两个部分
DELETE FROM CustomTags
WHERE Tag_ID = 0
AND Tag_Number IN (
SELECT Tag_Number FROM CustomTags WHERE Tag_ID <> 0
)
并在数据源中返回条件单元格
func numberOfSectionsInTableView(tableView: UITableView) -> Int
{
return 2
}
然后覆盖委托
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
If(section == 1) {
return <Return number of cell you want to display above header>
} else {
return <Return number of cell you want to display below header>
}
}
将条件高度设置为
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
{
if(section == 0) {
return nil //As you do not have to display header in 0th section, return nil
} else {
return <Return your header view>
//You can design your header view inside tableView as you design cell normally, set identifier to it and dequeue cell/headerView as:
//However this may result in unexpected behavior since this is not how the tableview expects you to use the cells.
let reuseIdentifier : String!
reuseIdentifier = String(format: "HeaderCell")
let headerView = tableView.dequeueReusableCellWithIdentifier(reuseIdentifier, forIndexPath: NSIndexPath(forRow: 0, inSection: 0))
return headerView
}
}
我们在这里做的是,我们在第二部分显示标题,它将有一些单元格,所以你会在tableView中看到一些没有标题的单元格,在这个单元格下面你会看到带有一些单元格的headerView,当你滚动你的tableView up headerView将与单元格一起滚动,直到它到达顶部。
希望这会对你有所帮助。