UiView固定在UiTableViewController之上

时间:2016-09-08 17:17:47

标签: ios swift uitableview uiview

我需要将UIView固定在UITableViewController之上(就像标题一样)。我试过这个:

override func scrollViewDidScroll (scrollView: UIScrollView)  {
     var fixedFrame: CGRect = self.uiTopView.frame;
     fixedFrame.origin.y = scrollView.contentOffset.y;
     self.uiTopView.frame = fixedFrame;
}

但它不起作用,我不知道为什么。有人有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这是无法做到的,实现此目的的一种方法是在UIContainerView内添加UITableViewController 所以结构如下:

ViewController1包含UIContainerView此容器视图已嵌入segue 到你的tableViewController。

然后您可以将视图添加到ViewController1。

答案 1 :(得分:0)

为什么实际使用UITableViewController而不是UIViewController和tableView?

也许您应首先添加标题视图,然后根据标题框架添加tableview。

例如:`import UIKit

类ViewController:UIViewController,UITableViewDelegate,UITableViewDataSource {     var fixedLabel:UILabel!     var tableView:UITableView!

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
     self.tableView.frame = CGRectMake(0, self.fixedLabel.frame.maxY, self.view.frame.width, self.view.frame.height-70)
     self.fixedLabel.frame = CGRectMake(0,0,self.view.bounds.width,70)
}

override func viewDidLoad() {
    super.viewDidLoad()

    self.fixedLabel = UILabel()
    self.fixedLabel.backgroundColor = UIColor.blueColor()
    self.fixedLabel.text = "This is a fixedLabel"
    self.fixedLabel.textAlignment = .Center

    self.tableView = UITableView()
    self.tableView.delegate = self
    self.tableView.dataSource = self

    self.view.addSubview(fixedLabel)
    self.view.addSubview(tableView)

}

 func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {


   var cell : UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("cell")

    if cell == nil {
        cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")
    }

    cell?.textLabel?.text = "Your text"
    return cell!
}

 func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 3
}

} `