美文网首页
设置导航栏(构造函数)

设置导航栏(构造函数)

作者: 醉叶惜秋 | 来源:发表于2017-12-05 23:45 被阅读26次

利用构造函数设置导航栏

给 UIBarButtonItem 添加扩展类UIBarButtonItem-Extension

import UIKit

extension UIBarButtonItem {
    /*
    class func createItem(imageName : String, highImageName : String, size : CGSize) -> UIBarButtonItem {
        let btn = UIButton()
        
        btn.setImage(UIImage(named: imageName), forState: .Normal)
        btn.setImage(UIImage(named: highImageName), forState: .Highlighted)
        
        btn.frame = CGRect(origin: CGPointZero, size: size)
        
        return UIBarButtonItem(customView: btn)
    }
    */
    
    // 便利构造函数: 1> convenience开头 2> 在构造函数中必须明确调用一个设计的构造函数(self)
    convenience init(imageName : String, highImageName : String = "", size : CGSize = CGSize.zero)  {
        // 1.创建UIButton
        let btn = UIButton()
        
        // 2.设置btn的图片
        btn.setImage(UIImage(named: imageName), for: UIControlState())
        if highImageName != "" {
            btn.setImage(UIImage(named: highImageName), for: .highlighted)
        }
        
        // 3.设置btn的尺寸
        if size == CGSize.zero {
            btn.sizeToFit()
        } else {
            btn.frame = CGRect(origin: CGPoint.zero, size: size)
        }
        
        // 4.创建UIBarButtonItem
        self.init(customView : btn)
    }
}

然后在控制器中创建自定义 item

   fileprivate func setupNavigationBar() {
        // 1.设置左侧的Item
        navigationItem.leftBarButtonItem = UIBarButtonItem(imageName: "logo")
        
        // 2.设置右侧的Item
        let size = CGSize(width: 40, height: 40)
        let historyItem = UIBarButtonItem(imageName: "image_my_history", highImageName: "Image_my_history_click", size: size)
        let searchItem = UIBarButtonItem(imageName: "btn_search", highImageName: "btn_search_clicked", size: size)
        let qrcodeItem = UIBarButtonItem(imageName: "Image_scan", highImageName: "Image_scan_click", size: size)
        navigationItem.rightBarButtonItems = [historyItem, searchItem, qrcodeItem]
    }

相关文章

  • 设置导航栏(构造函数)

    利用构造函数设置导航栏 给 UIBarButtonItem 添加扩展类UIBarButtonItem-Extens...

  • 03-导航栏设置

    导航栏设置 课程目标 便利构造函数的使用 自定义显示到 XIB 控制面板的属性 自定义导航控制器思路 发现页面搜索...

  • swift-导航栏修改高度

    导航栏直接可以通过frame来改变高度 设置导航栏半透明 设置导航栏背景图片 设置导航栏阴影图片 设置导航栏前景色...

  • iOS设置导航栏样式到AttributeString富文本总结

    一、iOS开发中导航栏设置1.1、导航栏透明的设置方法 1.2设置导航栏背景色 1.3 设置导航栏中titleLa...

  • 设置导航栏颜色, 字体大小

    取出导航栏 设置导航栏背景色 设置标题颜色和字体大小 设置布局从导航栏下开始, 把导航栏设置为不透明 设置状态栏的...

  • Swift - NavigationBar Tips

    设置导航栏背景色为透明 隐藏导航栏下方的线条 设置导航栏的背景色 设置导航栏背景不为半透明

  • Swift之导航控制器(UINavigationControll

    一:导航栏的创建及常用方法 //设置导航栏的统一的背景色 // 设置导航栏的背景色 //设置导航栏的...

  • UINavigationBar详解

    设置导航栏标题 设置导航栏的背景颜色 设置导航栏的背景图片 UIBarMetrics枚举:UIBarMetrics...

  • 导航栏渐变隐现

    页面不显示导航栏,上托一定的距离显示导航栏. 设置导航栏存在且透明: 1.设置导航栏的透明: //导航栏透明 ...

  • UINavigationController&UINav

    导航栏设置 自定义导航栏

网友评论

      本文标题:设置导航栏(构造函数)

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