这个问题要求在Swift 4,iOS 11中实现
有什么方法可以让ViewController视图的每个子视图在UINavigationBar下被推下来?
如果导航栏不是TRANSLUCENT,则子视图位于其下方。这就是我想要的。
但是当导航栏是TRANSLUCENT时,子视图就在它下面。我不想要它。我希望子视图被推下来就好像导航栏不是半透明的。
我以编程方式创建视图:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.red
let navBar = (self.parent as? UINavigationController)?.navigationBar
navBar?.isTranslucent = true
}
func makeChildView() {
let myframe = CGRect(x: 0, y: 10, width: self.view.frame.width, height:
self.view.frame.height * 0.4)
let view = UIView(frame: myframe)
view.backgroundColor = UIColor.green
self.view.addSubview(view)
}
我可以使用autolayout解决这个问题。但我只是想知道如果可能的话如何在没有autolayout的情况下实现这个结果。还有其他方法吗?
答案 0 :(得分:0)
Swift 3.x
navBar?.isTranslucent = true
self.automaticallyAdjustsScrollViewInsets = false
添加此行&你很高兴。