美文网首页Swift从0开始
Swift便利构造函数抽取控件创建方法

Swift便利构造函数抽取控件创建方法

作者: 浮桥小麦 | 来源:发表于2016-11-12 15:58 被阅读431次
前言:在Swift中对于控件创建时的代码抽取类似于OC中的分类,接下来看看在Swift中是如何做的
举例—
#先创建几个并排的btn
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
       ///调用方法
        setupUI()
    }

    func setupUI() -> () {
        let btn1 = UIButton(type: .custom)
        btn1.setTitle("按钮1", for: .normal)
        btn1.setTitleColor(UIColor.orange, for: .normal)
        btn1.frame = CGRect(x: 50, y: 100, width: 100, height: 44)
       btn1.backgroundColor = UIColor.blue
       view.addSubview(btn1)
        
        let btn2 = UIButton(type: .custom)
        btn2.setTitle("按钮2", for: .normal)
        btn2.setTitleColor(UIColor.orange, for: .normal)
        btn2.frame = CGRect(x: 160, y: 100, width: 100, height: 44)
        btn2.backgroundColor = UIColor.blue
        view.addSubview(btn2)
        
        let btn3 = UIButton(type: .custom)
        btn3.setTitle("按钮3", for: .normal)
        btn3.setTitleColor(UIColor.orange, for: .normal)
        btn3.frame = CGRect(x: 270, y: 100, width: 100, height: 44)
        btn3.backgroundColor = UIColor.blue
        view.addSubview(btn3)
 }
以上代码就出现了重复冗余的代码,我们接下来来抽取一下
抽取—
#首先command + N 创建一个Swift.file 命名为UIButton + extension
#其次将import Foundation 改为 import UIKit

import UIKit
// extension 类似于OC中的 categary
extension UIButton {
    
    //便利构造函数
    convenience init(title : String , titleColor : UIColor , frame : CGRect, backgroundColor : UIColor) {
        //1.实例化当前对象—因为在便利构造函数中是不负责创建对象的,所以必须调用本身的构造函数来创建对象后,再做下面的事情
        self.init()
          //2.访问属性
        self.setTitle(title, for: .normal)
        self.setTitleColor(titleColor, for: .normal)
        self.frame = frame
        self.backgroundColor = backgroundColor
       }
}

//接下来再在ViewController中再创建一个按钮用便利构造方法
  let btn4 = UIButton(title: "按钮4", titleColor: UIColor.orange, frame:  CGRect(x: 50, y: 150, width: 100, height: 44)
, backgroundColor: UIColor.blue)
        view.addSubview(btn4)
//看起来就简单多了
#扩展—在Swift中函数可以传递默认值,对于我们写便利构造函数来创建多个类似属性控件时是一大便利,可以轻松实现控件的多属性组合
//给便利构造函数中的 backgroundColor属性设置一个默认值
    convenience init(title : String , titleColor : UIColor , frame : CGRect, backgroundColor : UIColor = UIColor.black)
//接下来创建按钮时就可以不传此参数
 let btn5 = UIButton(title: "按钮5", titleColor: UIColor.orange, frame: CGRect(x: 160, y: 150, width: 100, height: 44))
当然如果想要这个属性不是默认参数,直接传递就好



相关文章

  • Swift便利构造函数抽取控件创建方法

    前言:在Swift中对于控件创建时的代码抽取类似于OC中的分类,接下来看看在Swift中是如何做的 举例— 抽取—

  • Swift构造函数和便利构造函数

    [转]Swift构造函数和便利构造函数 构造函数基础 构造函数是一种特殊的函数,主要用来在创建对象时初始化对象,为...

  • Swift面向对象

    创建一个类 类的四种属性 类的构造 swift类构造过程 指定构造器 便利构造器 KVC构造器 实例方法和类方法 ...

  • Swift - 便利构造函数

    对于项目中一些常用的UI控件,往往是根据需求需要写很多重复代码,这样看起来代码就会很繁琐 这个时候就需要便利构造函...

  • swift 便利构造函数

    便利构造函数 便利构造函数允许返回nil, 正常的构造函数一定会创建对象判断给定的条件是否符合条件,如果条件不符合...

  • swift 的碎碎念

    重写构造方法,必须调用一次系统提供的构造方法以便初始化父控件 写便利构造函数的时候,需要先初始化自身的所有属性,基...

  • 便利构造函数

    便利构造函数并不负责创建对象,在便利构造函数中可以对属性进行判断,判断是否符合创建条件,也可以为创建的对象赋值,但...

  • Swift构造函数-便利构造函数(三)

    convenience 便利构造函数 默认情况下,所有的构造方法都是指定构造函数 Designated conve...

  • Swift知识点总结(便利构造函数、析构函数和闭包特点)

    "便利构造函数:自己不创建对象 1、作用:判断参数条件是否合法 2、传递‘常用/重要参数’ 3、只有便利的构造函数...

  • Swift 引发的一场知识暴动

    一、构造方法 在Swift中,主要有三种构造方法:系统构造方法、普通构造方法与便利构造方法。构造方法一般都是以 i...

网友评论

本文标题:Swift便利构造函数抽取控件创建方法

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