swift 4.2实现导航栏

2019-01-09  本文已影响26人  yytester

UINavigationBar, UINavigationItem, UIBarButtonItem三者之间的关系


代码:

import UIKit

class ViewController: UIViewController {
    
    var label: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        let screen = UIScreen.main.bounds
        
        //1. 创建NavigationBar
        let navigationBarHeight: CGFloat = 44//默认高度
        let navigationBar = UINavigationBar(frame: CGRect(x: 0, y: 20, width: screen.size.width, height: navigationBarHeight))
        let saveButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.save, target: self, action: #selector(ViewController.save(_:)))
        let addButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.add, target: self, action: #selector(ViewController.add(_:)))
        
        let navigationItem = UINavigationItem(title:"")
        navigationItem.leftBarButtonItem = saveButtonItem
        navigationItem.rightBarButtonItem = addButtonItem
        
        navigationBar.items = [navigationItem]
        self.view.addSubview(navigationBar)
        
        //2. 添加标签
        let labelWidth: CGFloat = 84
        let labelHeight: CGFloat = 21
        let labelTopView: CGFloat = 198
        self.label = UILabel(frame: CGRect(x: (screen.size.width - labelWidth)/2, y: labelTopView, width: labelWidth, height: labelHeight))
        self.label.text = "Label"
        self.label.textAlignment = .center
        self.view.addSubview(self.label)
        
        
    }
    
    @objc func save(_ sender: AnyObject){
        self.label.text = "点击Save"
    }
    
    @objc func add(_ sender: AnyObject){
        self.label.text = "点击Add"
    }


}

image.png
上一篇 下一篇

猜你喜欢

热点阅读