zoukankan      html  css  js  c++  java
  • Swift 扩展方法,便利构造函数的创建

       最近项目快完成了,于是开始进入优化项目的阶段了,在oc中,我们可以创建分类来扩展方法,而swift就更方便,下面有两种方法:

    代码如下:

      这是对UIBarButtonItem 的扩展方法

    import UIKit
    
    //对UIBarButtonItem
    extension UIBarButtonItem {
        //扩展方法
    //    class func createItem(imageName: String,highligh: String, size: CGSize) -> UIBarButtonItem {
    //        let btn = UIButton()
    //        
    //        btn.setImage(UIImage(named: imageName), for: .normal)
    //        btn.setImage(UIImage(named: highligh), for: .highlighted)
    //        
    //        btn.frame = CGRect(origin: CGPoint.zero, size: size)
    //        return UIBarButtonItem(customView: btn)
    //    }
        
        //便利构造函数 1:convenience 2:self.init,⚠️: other 不传 也不会报错
        convenience init(imageName: String = "",highligh: String = "", size: CGSize, other: String = "") {
            let btn = UIButton()
        
            btn.setImage(UIImage(named: imageName), for: .normal)
            btn.setImage(UIImage(named: highligh), for: .highlighted)
            btn.frame = CGRect(origin: CGPoint.zero, size: size)
            
            self.init(customView: btn)
        }
    }

      

  • 相关阅读:
    Zero Copy
    内核态(Kernel Mode)与用户态(User Mode)
    Netty端口被占用问题
    AsyncHttpClient的连接池使用逻辑
    HashMap 与 ConcurrentHashMap
    Java NIO Test Case
    Netty writeAndFlush() 流程与异步
    Java 文件路径相关
    代理的匿名程度
    Netty堆外内存泄露排查与总结
  • 原文地址:https://www.cnblogs.com/gaozhang12345/p/6656960.html
Copyright © 2011-2022 走看看