如何实现AppStore排名列表页面的NavigationBar效果

时间:2017-01-12 08:53:47

标签: ios swift3 navigationbar

我使用以下代码增加NavigationBar高度
override func viewDidLayoutSubviews() {

    setUpSegmentControll()

    let view  = UIView(frame: CGRect(x: 0, y: 44, width: ScreenWidth, height: 40))
    view.backgroundColor = UIColor.init(colorLiteralRed: 89/255, green: 89/255, blue: 89/255, alpha: 1)
    segmentControll.center.x = view.center.x
    view.addSubview(segmentControll)
    self.navigationController?.navigationBar.addSubview(view)

}
但该段没有效果,代码有什么问题

2 个答案:

答案 0 :(得分:1)

您需要增加导航栏的大小。尝试以下代码,它可以正常工作

import UIKit

/*extension  UINavigationBar {
    open override func sizeThatFits(_ size: CGSize) -> CGSize {
        var rect = self.frame;
        let screenRect = UIScreen.main.bounds
        rect.size.width = screenRect.size.width
        rect.size.height = 104
        return rect.size
    }
}*/

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    self.navigationController!.navigationBar.clipsToBounds = true
}
override func viewDidAppear(_ animated: Bool) {
    self.navigationController!.navigationBar.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 104.0)

}
override func viewWillDisappear(_ animated: Bool) {
    self.navigationController!.navigationBar.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 64.0)
}


override func viewDidLayoutSubviews() {

    let segmentControll = UISegmentedControl(items: ["1","2"])
    segmentControll.frame = CGRect(x: 0, y: 5, width: 300, height: 30)
    let view  = UIView(frame: CGRect(x: 0, y: 64, width: UIScreen.main.bounds.size.width, height: 40))
    view.backgroundColor = UIColor.init(colorLiteralRed: 89/255, green: 89/255, blue: 89/255, alpha: 1)
    segmentControll.center.x = view.center.x
    view.addSubview(segmentControll)
    self.navigationController?.navigationBar.addSubview(view)

}

}

答案 1 :(得分:0)

您必须增加导航栏的高度。请参阅以下链接以增加导航栏的高度

How to increase the height of UINavigationBar?