None 21 1月 2019 Swiftで完了ハンドラを省略しよう! Swiftはシンプルでより英文に近い読みやすい言語として登場しました。中でも最後のクロージャを変形(Trailing Closure Syntax)できるのが気に入っています。 let action = UIAlertAction(title: "OK", style: .default, hand… 続きを読む
None 26 12月 2018 アプリのアイコンをsipsコマンドで作成する Macのターミナルからsipsコマンドを使えば様々なサイズのアイコンを楽に作成できます。 iOS12の今の時点では、一番大きな1024pxのアイコンに加え、iPhone用8種類、iPad用9種類、のアイコンが必要になっています。この17枚のリサイズした画像をコマンド一発で作成できます。 まず、102… 続きを読む
None 7 7月 2018 IBOutletCollectionをNSMutableArrayにする 同種のViewを配列で扱えるIBOutletCollectionは、普通に使うと変更できないNSArrayになります。ボタンのコレクションを宣言するとこんな感じ。 @property (nonatomic) IBOutletCollection(UIButton) NSArray<UIButt… 続きを読む
None 17 6月 2018 縦向きのスライダーVertical Sliderを作ってみよう Viewの向きを変えたいとき、今のところ、Storyboardからは直接回転させられません。ですので、初期化時にtransformで回転させますが、そうすると、制約でレイアウトを制御しにくくなります。目視でレイアウトを微調整できないのも不便ですよね。 妥協点を探る上で、縦向きのスライダーを考えてみま… 続きを読む
None 13 4月 2018 ドラッグで「戻る」「閉じる」ができるDraggableNavigationControllerを作ってみた DraggableNavigationContoller この仕組みはiOS 13に標準搭載されましたので、カスタマイズ不要となりました。 ViewControllerの画面遷移を思いのままにカスタマイズ モーダルの場合はtransitioningDelegateメソッド func animatio… 続きを読む
None 16 3月 2018 UIAlertControllerは拡張高い UIAlertControllerはサブクラス化が禁止されていますが、内部では色々な事ができるように作られています。setValueを使うと上部にViewControllerを追加できるので画像を表示できるようにカスタマイズしてみました。取りあえずiOS10と11で動きます。 画像表示ダイナミックフ… 続きを読む
None 1 3月 2018 Swiftで経過時間を表示する 秒数を整数にして自力で計算する タイマーで繰り返し経過時間を表示させる場合は、整数にして計算すると速いです。 // 適当に開始時点のDateを用意する let startDate = Date().addingTimeInterval(-180071.3325) // 開始からの経過秒数を取得する … 続きを読む
None 11 2月 2018 ナビゲーションバーの戻るボタンのタイトルだけを消す方法 ナビゲーションを使った画面遷移で左側に表示される<戻るボタンを矢印だけにしてみます。最初に紹介する前の画面で設定しておくのが一番簡単な方法です。 前の画面で設定しておく 遷移前のViewControllerで空のボタンをセットしておくとpushした次の画面で文字が消えます。 コードで設定 ov… 続きを読む
None 31 1月 2018 競合するUIGestureRecognizerを上手く共存させる viewに割り当てたジェスチャー同士がバッティングした時にはどれを失敗させるのか、事前に決めておく必要があります。 こういった処理は通常、画面上のジェスチャーを同列に扱えるViewControllerの中で書く訳ですが、複雑なアプリになると出来るだけVCには書きたくなくなります。 そこで、ある程度良… 続きを読む