LoginSignup
4

More than 5 years have passed since last update.

XIBでViewを用意してswiftのソースコードで読み込む

Last updated at Posted at 2018-04-21

XIBファイル

  • Custom ClassをAL1Viewにする

swiftのソース

extension.swift
import UIKit

extension NSObject{
  //クラス名を返すクラス変数
  static var CLASS_NAME:String{
    return NSStringFromClass(self.self).components(separatedBy: ".")[1]
  }
}

extension UIView{
  //クラス名.xibを読み込むクラスメソッド
  static func loadXIB()->Any?{
    return UINib(nibName: self.CLASS_NAME , bundle: nil).instantiate(withOwner: self, options: nil).first
  }
}

AL1View.swift
import UIKit

class AL1View: UIView {

  @IBOutlet weak var iv: UIImageView!
  @IBOutlet weak var lbl: UILabel!
  @IBOutlet weak var swtch: UISwitch!

  override func awakeFromNib() {
    super.awakeFromNib()
  }
}
ViewController.swift
import UIKit
import TinyConstraints

class ViewController:UIViewController{

  override func viewDidLoad() {
    super.viewDidLoad()
    self.setup()
  }

  private func setup(){
    if let v = AL1View.loadXIB() as? AL1View {
      self.view.addSubview(v)
      v.edgesToSuperview()
    }
  }
}

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4