swift微博第8天(自定义标题按钮)

简介: swift微博第8天(自定义标题按钮)

1.自定义一个TittleBtn

import UIKit
class TittleBtn: UIButton {
// 初始化视图
   override init(frame: CGRect) {
    super.init(frame: frame)
    setTitleColor(UIColor.JKTextGayColor(), for: UIControlState.normal)
    setImage(UIImage(named:"navigationbar_arrow_down"), for: UIControlState.normal)
    setImage(UIImage(named:"navigationbar_arrow_up"), for: UIControlState.selected)
    sizeToFit()
   }
   // 防止storyboard崩溃
   required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
   }
   // 调整图片和文字的位置
   override func layoutSubviews() {
     super.layoutSubviews()
     titleLabel?.x = 0
     imageView?.x = titleLabel!.width
    }
}

提醒:我这里可以用.x.with是因为我对frame进行了重写


2.调用自定义的标题按钮

let btn = TittleBtn()
   btn.setTitle("极客江南 ", for: UIControlState.normal)
   btn.addTarget(self, action: #selector(HomeViewController.tittleClick(btn:)), for: UIControlEvents.touchUpInside)
   navigationItem.titleView = btn

3.方法的实现

@objc private func tittleClick(btn:TittleBtn){
    print("标题的点击方法")
    btn.isSelected = !btn.isSelected
}


目录
相关文章
|
2月前
|
Swift 图形学 iOS开发
【Swift开发专栏】Swift中的自定义视图与绘制
【4月更文挑战第30天】本文探讨了Swift中自定义视图的创建与绘制,分为基础知识、绘制步骤和性能优化三部分。开发者通过继承`UIView`,重写`draw(_:)`方法并利用Core Graphics进行2D绘图。提高性能的技巧包括避免重复绘制、使用轻量级视图、优化图形上下文使用、启用图层背板及避免阻塞主线程。自定义视图让iOS和macOS界面更独特高效,进阶可探索Core Animation和Metal等技术。
|
Swift
Swift -banner滚动图自定义
Swift -banner滚动图自定义
201 0
Swift -banner滚动图自定义
|
Swift
Swift - 自定义tabbar的封装
Swift - 自定义tabbar的封装
306 0
Swift - 自定义tabbar的封装
|
Swift
Swift之自定义Button
Swift之自定义Button
210 0
Swift之自定义Button
|
SQL 存储 Oracle
swift微博第25天(SQLite)
swift微博第25天(SQLite)
202 0
swift微博第25天(SQLite)
|
Swift
swift微博第21天(图片选择器)
swift微博第21天(图片选择器)
437 0
swift微博第21天(图片选择器)
|
Swift
swift微博第15天(新版的判断以及跟控制器的切换)
swift微博第15天(新版的判断以及跟控制器的切换)
153 0
swift微博第15天(新版的判断以及跟控制器的切换)
|
Swift
swift微博第14天(新特性的引导图)
swift微博第14天(新特性的引导图)
161 0
swift微博第14天(新特性的引导图)
|
Swift
Swift5.1—自定义运算符
Swift5.1—自定义运算符
121 0
|
Swift
swift微博第18天(NSDate+Extension.swift)
swift微博第18天(NSDate+Extension.swift)
112 0