SwiftでxibをカスタムViewとして使用する時の諸々
SwiftでStoryboard等を使っている場合、すべてのViewに関する処理を、同一のViewControllerに書くと、とても長くなってしまいます。そのため、Viewの切り出しを行う方が多いかと思います。以下でその分割方法について書いていきます。
xibをカスタムViewとして使用する方法
- UIView(以下
CustomView.swiftと呼ぶ)とxib(以下CustomView.xibと呼ぶ)のファイルを作成する CustomView.xibで配置したViewのFile's OwnerにCustomViewを指定するCustomView.xibで配置したViewをCustomView.swiftにcontentViewという名前で紐付けるCustomView.swiftにxibを読み込むための処理を記述する(以下参照)
import UIKit
class CustomView: UIView {
@IBOutlet var contentView: UIView!
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
loadXib()
}
private func loadXib() {
NSBundle.mainBundle().loadNibNamed("CustomView", owner: self, options: nil)
contentView.frame = CGRectMake(0, 0, frame.size.width, frame.size.height)
addSubview(contentView)
}
}
あとは実際に使うところでUIViewのClassをCustomViewにすれば動くかと思います。
参考
Storyboard + AutoLayoutの環境下でUIScrollViewを配置する設定
Storyboard + AutoLayoutの環境下でUIScrollViewを配置するまでに必要な設定を書いていきます。
- Storyboard上で、UIViewControllerを配置
- UIViewControllerのUIView(以下①と呼ぶ)の上にUIScrollView(以下②と呼ぶ)を乗せて、Constraintsを上下左右0に設定
- UIScrollViewの上にUIView(以下③と呼ぶ)を乗せ、②③を選択し、equal widthにチェックを入れる
- ③のHeightにConstraintsを設定する
- ③にConstraintsを上下左右0に設定
- 該当のUIViewControllerのAdjustScrollViewInsetsのチェックを外す
簡潔ながら以上となります。 高さを変えたい時は③のHeightのConstraintsをいじるようにすれば大丈夫です。