我在导航控制器中嵌入了UITableViewController。我将工具栏放在导航栏下以对其进行扩展。看起来像这样:
但是,当我向上滑动以查看更多表格视图单元格时,工具栏会在导航栏后面滑动并消失。当我移动表格单元格时,有没有一种方法可以将其永久地固定在导航栏下而不移动?
最佳答案
如果将子视图添加到UITableViewController
,它将随其内容一起滚动。 UITableViewController
是显示全屏表格的特定类型的ViewController
。
要将另一个子视图添加为固定标题,可以创建以UIViewController
作为子视图的自定义UITableView
。然后,您可以实现协议UITableViewDataSource
和UITableViewDelegate
以获得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!;
}
}
还值得注意的是,如果您打算在故事板上的多个
UIViewController
中使用此工具栏,则应使用“容器视图”来指定并重新使用其设计。