swift
概要 iOS9からAPIのリスポンスとアプリモデルの間のマッピング用のCodable(Decodable + Encodable = Codable)が使えるようになった。CodingKeyはdecodeとencodeに必要なキーを定義するとき使うプロトコルである。そして、convertFromSnakeCaseはdecodeすると…
Intrinsic content sizeとは Auto Layout 機能の一部 UIViewのintrinsicContentSizeプロパティ constraintが設定されてない場合、intrinsicContentSizeが代わりレイアウトの計算に使われる UILabel, UIButtonみたいに、Viewのいろんな中身を適切に表示するた…
こういうViewを作りたく 高さ30の長方形 左下はサイズ24の角丸 Try CACornerMask (Failed) iOS11から使えるようになったCACornerMaskを使ってみる。 let view = UIView(frame: CGRect(x: 0, y: 0, width: 60, height: 30)) view.backgroundColor = .cyan vie…
アプリでDateの扱いは2パターンある APIの日付文字列をDate型にマッピング Date型をユーザーに見せるStringに変換 この2つのタイミングで、DateFormatterが使われる。DateFormatterにはdateFormat, calendarやlocaleを設定必要があり、どんなタイミングで…
この間、画像のプレビュー画面を作った。よくある、フルスクリーンのズームイン・ズームアウトできる画面。閉じるときは、一応×ボタンで閉じれる。でも、やっぱりTwitterみたいに、下スワイプして閉じれる方がかっこいいだね。 Heroとは HeroはTransitionを…
例: enum Foo: String { case hoge case none } var a: Foo = .none print(a == .none) // true var b: Foo? = Foo.none print(b == .none) // false こうなる理由は: 後者の`.none`がOptionalタイプの.noneになっている。 要するにnilだ。 print(nil == .…