我在tableView顶部的一个单元格上有一个SegmentedControl(tableView由所有静态单元格组成)...我希望顶部的单元格(和segmentedControl)“粘住”,以便始终作为用户可见在表格中滚动(请参见下面的屏幕截图)。这可能吗?
答案 0 :(得分:0)
通常,要应用此行为,应将其添加为 header view 而不是单元格。表格视图中的标题视图会“粘住”。但是,由于您要添加静态单元格(UITableViewController),因此即使您尝试将标题视图添加到表视图中,它也不会应用粘贴行为。
作为一种解决方法,您可能需要添加一个新的UIViewController,该UIViewController的顶部包含一个视图(标题视图)和一个容器视图,如下所示:
答案 1 :(得分:0)
我脑海中浮现出的一种骇人听闻的解决方案是:
在VC中声明标题,或保留引用:
private var header: UIView = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 40))
将其添加为tableView的子视图,并将内容插入设置为等于标题的高度。
tableView.addSubview(header)
tableView.contentInset.top = header.frame.height
如果标题使用自动版式,则需要调用
view.layoutIfNeeded()
设置内容插图之前
,然后使标题始终始终位于tableView的顶部:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
header.frame.origin.y = scrollView.contentOffset.y
}