Swift 【利用 泛型 便利 xib 的加载过程】

//
//  UIView+Extension.swift
//  BasicSwift
//
//  Created by CoderZYWang on 2017/11/28.
//  Copyright © 2017年 hc. All rights reserved.
//

import UIKit

/// 加载 UIView 类型的 xib
func loadNib<T>(_ : T.Type) -> T where T: UIView {
    return Bundle.main.loadNibNamed("\(T.self)",owner: nil,options: nil)?.first as! T
}

/// 加载 UIView 类型的 xib(并设置 frame 参数)
func loadNib<T>(_ : T.Type,frame: CGRect) -> T where T: UIView {
    let TView = loadNib(viewType)
    TView.frame = frame
    return TView
}


//
//  HomeViewController.swift
//  BasicSwift
//
//  Created by CoderZYWang on 2017/11/27.
//  Copyright © 2017年 hc. All rights reserved.
//

import UIKit

class HomeViewController: UIViewController {
    override func viewDidLoad() {
        setUpUI()
    }
}

extension HomeViewController {
    func setUpUI() {
        view.backgroundColor = UIColor(hex: "FF5A39",alpha: 0.5)
    
        let laolaoView = loadNib(LaoLaoView.self,frame: CGRect(x: 20,y: 220,width: 300,height: 150))
        view.addSubview(laolaoView)
        
        let laolaoView02 = loadNib(LaoLaoView.self)
        view.addSubview(laolaoView02)
        laolaoView02.frame = CGRect(x: 20,y: 400,width: 200,height: 120)
    }
}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...