如何以编程方式将视图固定到 Swift 中的选项卡栏?

How to programatically fix a view to a tab bar in Swift?

我在 tabBarController 内的 navigationController 内有一个 tableView。 我想以编程方式修复标签栏上方的视图,如下所示:

.

我试过加约束没有成功,也是因为不知道是用self.view还是self.bottomLayoutGuide还是self.tableView还是self.navigationController还是self.tabBarController.tabBar 或...有什么建议吗?

试试这个:

button = UIButton(frame: CGRect(x: 0, y: self.view.frame.height - 99, width: self.view.frame.width, height: 50))
button.backgroundColor = UIColor(red: 0, green: 88/255, blue: 171/255, alpha: 1)
button.tintColor = .white
button.titleLabel?.font = UIFont(name: "Helvetica", size: 20)
button.setTitle("YOUR TEXT", for: .normal)
button.addTarget(self, action: #selector(yourAction), for: .touchUpInside)

self.navigationController?.view.addSubview(button)

在我的示例中,它是 UIButton,但也可以是 UIView

UIView

相同的示例
let view = UIView(frame: CGRect(x: 0, y: self.view.frame.height - 99, width: self.view.frame.width, height: 50))
view.backgroundColor = UIColor(red: 0, green: 88/255, blue: 171/255, alpha: 1)

self.navigationController?.view.addSubview(view)

试试这个 Swift 3.0

底视图代码在这里。

    let bottomview = UIView(frame: CGRect(x: 0, y: self.view.frame.height-63,width:self.view.frame.width, height: 80))
    bottomview.backgroundColor = UIColor.red
    self.view.addSubview(bottomview)
       

Table 在此处查看代码...

    let table: UITableViewController = MyTableViewController()
    let tableView: UITableView = UITableView()
    tableView.frame = CGRect(x: 0, y:self.navigationController.navigationBar.frame.size.height, width: self.view.frame.width, height: 500)
    tableView.dataSource = table
    tableView.delegate = table

    self.view.addSubview(tableView)
self.automaticallyAdjustsScrollViewInsets = NO;

然后你会看到tableviewcell被navigationbar覆盖了 如果你想让导航栏完全透明

self.navigationController.navigationBar.backgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault;
self.navigationController.navigationBar.shadowImage:[UIImage new];