【swift】ViewControllerとViewを分離させてViewControllerの記述を減らす
最近は、storyboardもxibも使わない方針で実装しているため、Viewを構築するのも全てコードで定義しています。
特に考えなければ、initializeの時に組み立ててしまうのですが、そうするとViewControllerとは関係のないコードが増えていき、可読性が悪くなります。
class ViewController: UIViewController { init() { super.init(nibName: nil, bundle: nil) // ここで組み立ててしまうとあっという間に行数が増えていく... addSubview(UIView()) addSubview(UIView()) } }
その変わりに、View自体を独自クラスにしてあげて、それをViewControllerで読み込むようにすれば、Viewの組み立てを分離できます。
ViewControllerにはloadView
というメソッドが定義されているので、それをoverrideして、独自に定義したViewクラスを設定します。
class ViewController: UIViewController { overide func loadView() { view = SampleView() } } class SampleView: UIView { init() { super.init(frame: .zero) // Viewの組み立てはここでしてしまう addSubview(UIView()) addSubview(UIView()) } }