我试图在tableView上方添加一个UI视图,但是视图隐藏在单元格后面。视图应该一半在第0节的页脚,一半在第1节的页眉,空白区域是页眉的填充。
我已经使用bringSubviewToFront方法,但它不工作。一切,我已经尝试了下面的评论。
func setupMyRankView(){
// tableView.addSubview(myRankView)
// tableView.footerView(forSection: 0)?.insertSubview(myRankView, aboveSubview: self.view)
// tableView.footerView(forSection: 0)?.bringSubviewToFront(myRankView)
self.view.bringSubviewToFront(myRankView)
// tableView.cellForRow(at: indexPath)?.insertSubview(myRankView, aboveSubview: self.view)
// tableView.cellForRow(at: indexPath)?.bringSubviewToFront(myRankView)
myRankView.myRankLabel.text = "Hello"
}
3条答案
按热度按时间u5rb5r591#
尝试为页眉部分创建自定义UIView,并将“RankView”添加到此自定义视图,并设置clipToBounds = false(因为您的RankView将位于页眉视图的边界之外)。然后重写方法UITableView委托“viewForHeaderInSection”(https://developer.apple.com/documentation/uikit/views_and_controls/table_views/adding_headers_and_footers_to_table_sections)并返回自定义页眉视图。
ma8fv8wu2#
当表格视图管理其单元格和节页眉/页脚时,它会不断地重新排列Z顺序。
您需要做的是在每次表更新时将“排名”视图放在前面。
实现这一点的一种方法是实现表视图的
scrollViewDidScroll
--这给您带来了额外的好处,它是计算“等级”视图的帧的好地方。它会是这样的:
scrollViewDidScroll
上代码如下所示:
这里有一个完整的例子,你可以尝试...
“排名”视图示例
简单多行标签单元格
可重复使用的节页眉/页脚视图
样品控制器
运行时是这样的:
第一节第一节第一节第一节第一次
e3bfsja23#
将以下代码添加到项目类的viewDidLoad()函数中
您可以根据需要添加或更改。
如果有帮助请投票!