我在导航控制器中嵌入了UITableViewController。我将工具栏放在导航栏下以对其进行扩展。看起来像这样:

ios - 如何将工具栏保持在导航栏下方-LMLPHP

但是,当我向上滑动以查看更多表格视图单元格时,工具栏会在导航栏后面滑动并消失。当我移动表格单元格时,有没有一种方法可以将其永久地固定在导航栏下而不移动?

最佳答案

如果将子视图添加到UITableViewController,它将随其内容一起滚动。 UITableViewController是显示全屏表格的特定类型的ViewController

要将另一个子视图添加为固定标题,可以创建以UIViewController作为子视图的自定义UITableView。然后,您可以实现协议UITableViewDataSourceUITableViewDelegate以获得UITableViewController的功能。

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var tableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.tableView.delegate = self;
        self.tableView.dataSource = self;
    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // change to data
        return 5;
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        // can also use custom cell from xib
        var cell:UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("default");

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

        cell!.textLabel!.text = "example";

        return cell!;
    }

}


ios - 如何将工具栏保持在导航栏下方-LMLPHP

还值得注意的是,如果您打算在故事板上的多个UIViewController中使用此工具栏,则应使用“容器视图”来指定并重新使用其设计。

10-08 20:22