AutoLayoutの制約をなるべく簡単にしたいですよね。
XibをViewに読み込むことでViewController内の制約をよりシンプルに!そして簡略化します。
解説
まずはsampleViewController.Xibの中にViewを置きます。

このようにViewを置いたらSwiftファイルとViewのXibファイルを作成していきます。
ファイル名は同名にしましょう!!(今回はsampleHomeViewと命名)
sampleHomeView.swift にコードを書きます。こちらはコピペでOKです。
import UIKit
class sampleHomeView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
loadView()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
loadView()
}
private func loadView() {
let className = String(describing: type(of: self))
let view: UIView = Bundle.main.loadNibNamed(className, owner: self, options: nil)?.first as? UIView ?? UIView()
view.frame = bounds
addSubview(view)
}
}
このコードを書くことでFile's Ownerのクラス設定ができ、Viewに読み込めるようになります。
sampleHomeView.Xib のFile's Ownerを選択し、ClassをsampleHomeViewにします。

そしたらsampleHomeView.Xib にUIパーツを置いていきます。(今回はButtonを配置します)

次にsampleView.Xibの設定をしていきます。
一番最初に置いたViewを選択して、CustomClassのClassをsampleHomeViewにします。

これでXibをViewに読み込ませることができるようになりました。
しかし、この状態ではViewに読み込んでいることがわからないのでビルドしましょう!!

これで読み込ませることができましたね(^ ^)
こうすることにより、UIパーツのレイアウトを簡略化できそうです。

