UITableViewController中节标题和表格视图单元格的问题

时间:2016-11-29 13:30:48

标签: ios swift uitableview header

我已经完成了使用UITableviewController而不是使用滚动视图创建屏幕的实验原因是屏幕中的字段可能会发生巨大变化,这就是我为什么这样做的原因

屏幕:enter image description here

所有这些细胞都是静电细胞。

部分标题代码

let backgroundImage = UIImage(named: "main_bg")
    let imageView = UIImageView(image: backgroundImage)
    self.tableView.backgroundView = imageView

    header.backgroundColor = UIColor.clear
    let lblheader : appLabel = appLabel(frame: CGRect(x: 0, y: 20, width: UIScreen.main.bounds.width, height: header.frame.height - 20))
    lblheader.text = "SIGN UP"
    lblheader.textFontsize = 14
    lblheader.textFontType = 2
    lblheader.textFontColor = 1
    lblheader.textAlignment = .center
    header.addSubview(lblheader)

    let btnback : appButton = appButton(frame: CGRect(x: 0, y: lblheader.frame.origin.y, width: 50, height: lblheader.frame.height))
    btnback.backgroundColor = UIColor.clear
    btnback.setImage(UIImage(named: "back_arrow"), for: .normal)
    btnback.addTarget(self, action: #selector(self.btnBackTapped), for: .touchUpInside)
    header.addSubview(btnback)

现在当我滚动表时它看起来如下: enter image description here

我想在标题部分下滚动表格的静态单元格。 我知道我也可以使用UIViewController的组合,它包含Container并代表Table视图控制器(Ref:See this i used it already) 如果有任何其他解决方案。 请指导我!

谢谢

2 个答案:

答案 0 :(得分:0)

或者你也可以使用UITableView tableHeaderView而不是UITableView's viewForHeaderInSection,因为除了 之外,它总是会粘在tableview的顶部,除非你做了一些简单的黑客

如果你让你的SectionHeader不透明而不透明/半透明,你就会明白。尝试制作一个自定义项目(测试项目),在其中创建一个包含许多具有不同标题的部分的TableView

不创建示例项目的完美示例是iPhone中的Phone应用程序(绿色应用程序),其中Letters是截面标题,滚动时它们会粘在屏幕顶部

这是 Swift 2.3

中的一个示例
let someHeader = NSBundle.mainBundle().loadNibNamed("", owner:self, options nil!)!.first as! SomeView

//this is not a real function just what you wanna do stuff
someHeader.customizeIfNeeded ... yadda yadda set frame assign values add targets etc


tableView.tableHeaderView = someHeader
tableView.reloadData()

答案 1 :(得分:0)

使用UIViewController代替UITableViewController并在tableView

的顶部添加UIView作为标题

请参阅此maintain the header of a tableView fixed

只是一个简单的方法,希望这有帮助

如果你必须使用'UITableViewController',请查看以下解决方案

UITableViewController (static cells/keyboard handling) and have a fixed header