swift微博第7天(导航条按钮的封装)

简介: swift微博第7天(导航条按钮的封装)

1. 利用系统的方法来创建UIBarButtonItem

//navigationController?.navigationBar.tintColor = UIColor.orange
    navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.plain, target: self,action: #selector(BaseViewController.registerWillClick))
    navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.plain, target: self,action: #selector(BaseViewController.logionWillClick))

2. 设置导航条和工具条的外观,因为外观设定全局有效,所以应该在程序一进来就设定,在AppDelegate里面设施

UINavigationBar.appearance().tintColor = UIColor.orange
    UITabBar.appearance().tintColor = UIColor.orange

3.带图片的导航条内容 (一)

image.png


// MARK: 初始化导航条内容
private func setUpNav(){
    navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named:"navigationbar_friendattention"),style:UIBarButtonItemStyle.plain,target:self,action:#selector(HomeViewController.KK))
}
@objc private func KK(){
   print("点击了左边")
}


4.带图片的导航条内容: 利用button (二)


image.png


let leftBtn = UIButton()
 leftBtn.setImage(UIImage(named: "navigationbar_friendattention"), for: UIControlState.normal)
 leftBtn.setImage(UIImage(named: "navigationbar_friendattention_highlighted"), for: UIControlState.highlighted)
 leftBtn.addTarget(self, action: #selector(HomeViewController.leftAction), for: UIControlEvents.touchUpInside)
 // button自适应大小
 leftBtn.sizeToFit()
 navigationItem.leftBarButtonItem = UIBarButtonItem(customView:leftBtn)
 // 2.定义右边的按钮
 let rightBtn = UIButton()
 rightBtn.setImage(UIImage(named: "navigationbar_pop"), for: UIControlState.normal)
 rightBtn.setImage(UIImage(named: "navigationbar_pop_highlighted"), for: UIControlState.highlighted)
 // button自适应大小
 rightBtn.sizeToFit()
 rightBtn.addTarget(self, action: #selector(HomeViewController.rightAction), for: UIControlEvents.touchUpInside)
 navigationItem.rightBarButtonItem = UIBarButtonItem(customView:rightBtn)
@objc private func leftAction(){
   print("点击了左边")
}
@objc private func rightAction(){
    print("点击了右边")
}

5. UIBarButtonItem 在控制器里面的封装

1.封装
// MARK: 导航栏方法的封装
private func create(name: String,target: Any?, action: Selector) -> UIBarButtonItem{
    let rightBtn = UIButton()
    rightBtn.setImage(UIImage(named: name), for: UIControlState.normal)
    rightBtn.setImage(UIImage(named: name + "_highlighted"), for: UIControlState.highlighted)
    // button自适应大小
    rightBtn.sizeToFit()
    rightBtn.addTarget(target, action: action, for: UIControlEvents.touchUpInside)
    return UIBarButtonItem(customView:rightBtn)
}
2.方法的实现
 @objc private func leftActi1on(){
    print("点击了左边")
 }
 3.调用
  navigationItem.leftBarButtonItem = create(name: "navigationbar_friendattention", target: self, action: #selector(HomeViewController.leftActi1on))

6. UIBarButtonItem 类目的封装

// 1.类目的创建
 import UIKit
 extension UIBarButtonItem{
 class func createBarbuttonItem(name: String,target: Any?, action: Selector) -> UIBarButtonItem{
    let rightBtn = UIButton()
    rightBtn.setImage(UIImage(named: name), for: UIControlState.normal)
    rightBtn.setImage(UIImage(named: name + "_highlighted"), for: UIControlState.highlighted)
    // button自适应大小
    rightBtn.sizeToFit()
    rightBtn.addTarget(target, action: action, for: UIControlEvents.touchUpInside)
    return UIBarButtonItem(customView:rightBtn)
    }
 }
 // 2. 调用类的封装来创建 UIBarButtonItem
 navigationItem.leftBarButtonItem = UIBarButtonItem.createBarbuttonItem(name: "navigationbar_friendattention", target: self, action: #selector(HomeViewController.leftAction))
 // 3.方法的实现
 @objc private func leftAction(){
    print("点击了左边")
 }


目录
相关文章
|
16天前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户点击按钮时,按钮将从圆形变为椭圆形,颜色从蓝色渐变到绿色;释放按钮时,动画以相反方式恢复。通过UIView的动画方法和弹簧动画效果,实现平滑自然的过渡。
31 1
|
25天前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
【10月更文挑战第18天】本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户按下按钮时,按钮将从圆形变为椭圆形并从蓝色渐变为绿色;释放按钮时,动画恢复原状。通过UIView的动画方法和弹簧动画效果,实现平滑自然的动画过渡。
47 5
|
Swift
Swift - 自定义tabbar的封装
Swift - 自定义tabbar的封装
337 0
Swift - 自定义tabbar的封装
|
SQL 存储 Oracle
swift微博第25天(SQLite)
swift微博第25天(SQLite)
220 0
swift微博第25天(SQLite)
|
Swift
swift微博第21天(图片选择器)
swift微博第21天(图片选择器)
475 0
swift微博第21天(图片选择器)
|
Swift
swift微博第15天(新版的判断以及跟控制器的切换)
swift微博第15天(新版的判断以及跟控制器的切换)
173 0
swift微博第15天(新版的判断以及跟控制器的切换)
|
Swift
swift微博第14天(新特性的引导图)
swift微博第14天(新特性的引导图)
188 0
swift微博第14天(新特性的引导图)
|
安全 Swift 数据安全/隐私保护
swift微博第12天(OAuth授权)
swift微博第12天(OAuth授权)
172 0
swift微博第12天(OAuth授权)
|
程序员 API Swift
swift微博第11天(三方框架的导入和手动导入的桥接以及swift单粒)
swift微博第11天(三方框架的导入和手动导入的桥接以及swift单粒)
174 0
swift微博第11天(三方框架的导入和手动导入的桥接以及swift单粒)
|
Swift
swift微博第9天(自定义微博首页的菜单)
swift微博第9天(自定义微博首页的菜单)
178 0
swift微博第9天(自定义微博首页的菜单)