请参考此Answer。
我正在尝试做同样的事情,但是我想在选项卡栏应用程序中执行此操作,其中在应用程序的所有场景中,“正在播放”栏位于选项卡栏上方。
更新:
我想在屏幕底部(标签栏上方)和不同标签的内容视图下方(而不是上方)有一个视图。另外,我希望能够在某个时候删除此视图,以使主视图占据整个屏幕。
我可以通过编程方式更改nowPlaying
视图的约束,使用提到的Answer进行此操作。
最佳答案
使用UITabBarViewController子类可以:
例如:
class DashBoardViewController: UITabBarController {
let nowPlayingBar:UIView = {
let view = UIView(frame: .zero)
view.backgroundColor = .blue
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
initView()
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
nowPlayingBar.frame = tabBar.frame
}
override func viewDidAppear(_ animated: Bool) {
var newSafeArea = UIEdgeInsets()
// Adjust the safe area to accommodate
// the height of the bottom views.
newSafeArea.bottom += nowPlayingBar.bounds.size.height
// Adjust the safe area insets of the
// embedded child view controller.
self.childViewControllers.forEach({$0.additionalSafeAreaInsets = newSafeArea})
}
private func initView() {
nowPlayingBar.frame = tabBar.frame
view.addSubview(nowPlayingBar)
}
}
关于ios - UITabBarViewController的自定义TabBar布局,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48291081/