如何以编程方式将视图固定到 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];
我在 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];