mt312

AWSのプッシュ通知をアプリで実装するための注意点 None

AWSのプッシュ通知をアプリで実装するための注意点

エンドポイントを最新に保つ エンドポイントが無効になると通知が届かなくなってしまいます。作成済みであっても、デバイストークンが変わった時には登録し直さないといけません。逆にインストール直後など、まだ通知が必要か分からない段階では無理に作成しないようにします。 AWSSNSでプッシュ通知の購読と解除を…
SwiftでCFDictionary None

SwiftでCFDictionary

SwiftはObj-Cに比べてより柔軟な書き方ができる反面、最適な書き方がよく分からない場合がある。省略できたりできなかったり。例えばCFDictionaryの場合。 よく見かけるコード func clear() { let query: [String: Any] = [ kSec…
IBOutletCollectionをNSMutableArrayにする None

IBOutletCollectionをNSMutableArrayにする

同種のViewを配列で扱えるIBOutletCollectionは、普通に使うと変更できないNSArrayになります。ボタンのコレクションを宣言するとこんな感じ。 @property (nonatomic) IBOutletCollection(UIButton) NSArray<UIButt…
縦向きのスライダーVertical Sliderを作ってみよう None

縦向きのスライダーVertical Sliderを作ってみよう

Viewの向きを変えたいとき、今のところ、Storyboardからは直接回転させられません。ですので、初期化時にtransformで回転させますが、そうすると、制約でレイアウトを制御しにくくなります。目視でレイアウトを微調整できないのも不便ですよね。 妥協点を探る上で、縦向きのスライダーを考えてみま…
UIAlertControllerは拡張高い None

UIAlertControllerは拡張高い

UIAlertControllerはサブクラス化が禁止されていますが、内部では色々な事ができるように作られています。setValueを使うと上部にViewControllerを追加できるので画像を表示できるようにカスタマイズしてみました。取りあえずiOS10と11で動きます。 画像表示ダイナミックフ…
Swiftで経過時間を表示する None

Swiftで経過時間を表示する

秒数を整数にして自力で計算する タイマーで繰り返し経過時間を表示させる場合は、整数にして計算すると速いです。 // 適当に開始時点のDateを用意する let startDate = Date().addingTimeInterval(-180071.3325) // 開始からの経過秒数を取得する …
ナビゲーションバーの戻るボタンのタイトルだけを消す方法 None

ナビゲーションバーの戻るボタンのタイトルだけを消す方法

ナビゲーションを使った画面遷移で左側に表示される<戻るボタンを矢印だけにしてみます。最初に紹介する前の画面で設定しておくのが一番簡単な方法です。 前の画面で設定しておく 遷移前のViewControllerで空のボタンをセットしておくとpushした次の画面で文字が消えます。 コードで設定 ov…
無料ホームページ作成サービスWixを使ってみよう! None

無料ホームページ作成サービスWixを使ってみよう!

ご存知でしょうか? インストール不要で簡単に使える無料ホームページ作成サービスがあることを。 そんなWixのアカウントを取得してホームページを公開するまでやってみます。 Wixのアカウントを取得する ja.wix.comにアクセスします。 今すぐはじめるでログイン画面が表示されるので無料新規登録はこ…
競合するUIGestureRecognizerを上手く共存させる None

競合するUIGestureRecognizerを上手く共存させる

viewに割り当てたジェスチャー同士がバッティングした時にはどれを失敗させるのか、事前に決めておく必要があります。 こういった処理は通常、画面上のジェスチャーを同列に扱えるViewControllerの中で書く訳ですが、複雑なアプリになると出来るだけVCには書きたくなくなります。 そこで、ある程度良…