美文网首页Swift开发
Swift学习_类方法&构造函数

Swift学习_类方法&构造函数

作者: CN_HarrySun | 来源:发表于2017-08-02 10:15 被阅读18次
    Swift

    1.创建一个扩展

    command + N 创建一个文件,然后选择Swift File,点击Next,然后起个见名知意的名(一般都是起类名+Extension),创建。

    2. 类方法创建Button

    //
    //  UIButton-Extension.swift
    //  SwiftSHWB
    //
    //  Created by HarrySun on 2017/8/2.
    //  Copyright © 2017年 Mobby. All rights reserved.
    //
    
    import UIKit
    
        // 给UIButton加一个扩展
        extension UIButton{
            // swift中类方法是以class开头的方法,类似于OC中+开头的方法
            
            class func createButton(imageName:String,bgImageName:String) -> UIButton{
                // 1.创建Btn
                let btn = UIButton()
                // 2.设置btn属性
                btn.setImage(UIImage(named:imageName), for: .normal)
                btn.setImage(UIImage(named:imageName + "_highlighted"), for: .highlighted)
                btn.setBackgroundImage(UIImage(named:bgImageName), for: .normal)
                btn.setBackgroundImage(UIImage(named:bgImageName + "_highlighted"), for: .highlighted)
                btn.sizeToFit()
                return btn
            }
     
    }
    
    使用
    lazy var composeBtn:UIButton = UIButton.createButton(imageName: "tabbar_compose_icon_add", bgImageName: "tabbar_compose_button")
    

    3.构造函数创建Button

    相关知识--便利构造函数的特点:

    1.便利构造函数通常都是卸载extension里面
    2.便利构造函数init前面需要加载convenience
    3.在便利构造函数中需要明确的调用self.init()

    //
    //  UIButton-Extension.swift
    //  SwiftSHWB
    //
    //  Created by HarrySun on 2017/8/2.
    //  Copyright © 2017年 Mobby. All rights reserved.
    //
    
    import UIKit
    
        // 给UIButton加一个扩展
        // 构造函数(构造函数是不需要写返回值的,系统会自动返回的)
        // convenience:便利,使用convenience修饰的构造函数叫做便利构造函数
        // 便利构造函数通常用在对系统的类进行构造函数的扩充时使用
        extension UIButton{
        convenience init(imageName:String,bgImageName:String){
            self.init()
            setImage(UIImage(named:imageName), for: .normal)
            setImage(UIImage(named:imageName + "_highlighted"), for: .highlighted)
            setBackgroundImage(UIImage(named:bgImageName), for: .normal)
            setBackgroundImage(UIImage(named:bgImageName + "_highlighted"), for: .highlighted)
            sizeToFit()
        }
        
    }
    
    使用
    lazy var composeBtn:UIButton = UIButton(imageName: "tabbar_compose_icon_add", bgImageName: "tabbar_compose_button")
    

    附录

    查看完整专栏《Swift学习》

    有问题欢迎指正以及相互探讨 —— CoderSun

    相关文章

      网友评论

        本文标题:Swift学习_类方法&构造函数

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