美文网首页
swift 4.2实现导航栏

swift 4.2实现导航栏

作者: yytester | 来源:发表于2019-01-09 14:46 被阅读26次

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

  • UINavigationBar 导航栏,与导航控制器(UINavigationController)是1对1关系,管理一个视图控制器的栈,用来显示树形结构中的视图.
  • UINavigationItem 导航栏项目,在每个界面中都会看到,分为左,中,右三个区域.UINavigationBar与UINavigationItem是1对多关系,因为每个页面都会有一个UINavigationItem.
  • UIBarButtonItem 导航栏中的左右按钮.


    image.png

代码:

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

相关文章

网友评论

      本文标题:swift 4.2实现导航栏

      本文链接:https://www.haomeiwen.com/subject/xwqgrqtx.html