MOAViewLayout
MOAViewLayoutとは?
UIView を拡張したことで簡潔にレイアウト部分の実装を可能にしたiOS用のモジュールです。
このモジュールでレイアウト部分を実装することにより、ビューとレイアウトの実装を分離することができます。
ダウンロード
使い方
1.ダウンロードした以下ファイルをプロジェクトに追加
- MOAViewLayout.swift
- UIView+MOAViewLayout.swift
2.MOAViewLayoutオブジェクトの実装
let layout = MOAViewLayout()
let barHeight : CGFloat = 40
// ヘッダー部分のレイアウトを実装
layout["header"] = {
view, orientation in
return CGRectMake(
0,
0,
view.bounds.size.width,
barHeight
)
}
// フッター部分のレイアウトを実装
layout["footer"] = {
view, orientation in
return CGRectMake(
0,
view.bounds.size.height-barHeight,
view.bounds.size.width,
barHeight
)
}
3.親のUIViewに3で実装したMOAViewLayoutを適用する
parentView.setViewLayout(layout)
4.MOAViewLayoutを適用した親UIViewのsubviewにレイアウト用のIDを適用し、addSubviewする
let headerView = UIView()
headerView.setViewLayoutID("header")
parentView.addSubview(headerView)
let footerView = UIView()
footerView.setViewLayoutID("footer")
parentView.addSubview(footerView)
実行
以下のように subview に対してレイアウトIDを適用しただけでヘッダー/フッターのレイアウト領域が反映されていることが分かります。
回転にも対応
課題
- view.setViewLayout(layout)としていますが、本当は view.viewLayout = layout としたいです
おわりに
モジュールとしての要望・意見・突っ込みありましたら、何でも受け付けますのでお待ちしてます。