StoryBoardの箱入りっ娘ぶりに泣かされたので注意点メモ

もうStoryBoard辛い(;_;)

まじ許してください、Androidxmlは基本枠のみでviewの紐付けやらビジネスロジックの実装やらは基本全部コードで役割が分かれててコード書きには楽ですが、iosのUI周りはStoryBoardとViewControllerで両方設定できるため混乱しやすかったです。辛タン・・・

遷移はあんまNavigationControllerとか使わないでviewをaddsubviewしてます。その方がdelegateとか使いやすいんで。基本はこのスライドが激参考になります!

www.slideshare.net

注意1:User Interaction Enabledは忘れるな!

プロはm9(^Д^)プギャーーーッでしょうが・・・StoryBoardチェック抜けるのよ!!こんなんしらん!!これのチェック抜けるとsubviewのイベント拾いませんので注意です。こんなしょうもないことでどはまり・・・コードでも設定できるけどね

f:id:poTracy:20160716053722p:plain

注意2:UIコンポーネント(特にPickerView)は辛い

iosのUIコンポーネントは基本的には色ぐらいしか、弄っちゃいけない設計思想らしく(や、Appleやね)StoryBoardにあるコンポーネントならサイズや行数はコードで設定し直さないといけないっぽいです。おかげでCGAffineTransformMakeTranslation(ビュー変形や移動のためのクラス)という長い名前のクラスを知りました・・・

iphone - UIPickerView Height customisation - Stack Overflow

がっつり設定したかったらStoryBoardでなくコードでビューのインスタンス作ってビューの設定書いてaddsubviewする方法もあるようです。あんまStoryBardの意味ないよな・・・

iosでUI作るのはTableViewで行設定するのが一般的っぽいですが、cellにpickerView追加するのもStoryBoardで直接配置はできないようでコードでコンポーネントインスタンスを追加しなければいけないようです。あんまStoryBardの意味ないよな(大事なことなので2回言いました)

ios - UIPickerView in UITableView - Stack Overflow

注意3:でもWebviewでもつらい

あんまり辛かったのでhtmlで画面設計してJsonで値受け渡しすればAndroidでも使いまわせるしいいやんとばかりに組み出したんですがiosはwebviewのクラスが

  • UIWebView

  • WKWebView

  • SFSafariViewController

となんか3種類あり( ;´Д`)、UIWebviewはJavasprictグダグダとか!WKWebViewはローカルファイルは/tmp以下じゃないと読まない!とか、そもそもモバイル用htmlの書き方弱いので時間かかるとか、色々あり無駄〜に時間がかかってしまいました。でも画面設計はJqueryMobileとか使えばこっちの方が手軽なんで楽かもしんまい。

と完全に自分用のメモでStoryBoardのハマりどころを書きましたが、

結局自分の調べ不足なんですけどと反省しつつやっぱい辛いのでこれ聞きながら辛さを我慢しました。このままじゃ〜気が狂いそうさ、Oh!Girl

youtu.be