iOS

Moyaを使ってApiクライアント作成する

github.com 環境 Swift 4.1.2 Moya 11.0.2 Carthageでインストール // Cartfile github "Moya/Moya" carthage update --platform iOS ビルドが終わったらプロジェクトに追加します 使い方 GithubのApiを使って以下の情報を取得してみます ユーザー情報 (/use…

【Codable】特定の値を型変換する

レスポンスデータは文字列("12345")だけど、クライアントでは数値(12345)で扱いたい時 // レスポンスデータ { id = "12345"; name = "y-hryk"; email = "test@gmail.com"; } struct User: Codable { var id: Int var name: String var email: String init(fr…

R.swiftを使ってみる

便利とは聞いていたが、実務での使用経験がなかったため試してみる。 github.com メリット コード補完でリソースファイルにアクセスできる 文字列による指定をしなくてよくなるのでtypoに気がつける 導入 R.swift(4.0.0)を導入していきます。 ドキュメント通…

【RxSwift】Subjectまとめ

PublishSubject let publishSubject = PublishSubject<Int>() publishSubject.asObservable().subscribe { (event) in print("publishSubject: 1, event:\(event)") } publishSubject.onNext(1) publishSubject.onNext(2) publishSubject.asObservable().subscrib</int>…

UIDatePickerまとめ

いつも調べている気がするのでまとめておく 端末の設定に関係なく、強制的に24時間表記にする ※以下の設定をすると端末の設定が英語の場合でも日本語 + 24時間表示になるので注意 let datePicker = UIDatePicker() datePicker.locale = Locale(identifier: "…

【iOS】DateとStringの相互変換の注意点

今更ですが混乱することがあるのでまとめておく String->Date タイムゾーンなどの情報がない場合は現在の端末設定から自動的に タイムゾーンを考慮したDateが返ってくる ※ 地域の設定が日本の場合 let dateString = "2018/01/01 12:00" let formatter = Date…

UITableViewをスクロールしている時にNSTimerが呼ばれない

UITableViewに限らずUIScrollViewを継承しているクラス全部に言えることだと思うが 以下のような処理だとスクロール中にタイマー処理がスキップされる - (void)setupTimer { NSTimer *timer = [NSTimer timerWithTimeInterval:3.0 target:self selector:@sel…

一枚のUIImageViewで画像の入れ替えアニメーションを行う

コードは以下の通りです let transition = CATransition() transition.duration = 0.75 transition.type = kCATransitionFade self.myImageView.image = UIImage(named: "image2.png") self.myImageView.layer.add(transition, forKey: nil) また以下のコー…

PHAssetからファイル名や拡張子を取得する

PHAssetからファイル名を取得しようとしたらちょっと苦労したのでメモ PHAssetのメンバにはそれっぽいものがなかった。 結論を言うと Private Apiで取得 PHImageManager経由で取得 上記のどちらかのようだ。 Private Apiで取得 // 'asset'は PHAssetのインス…