UIKit

Compositional Layouts Self-Sizing のはまりどころと複雑なレイアウト例

github.com 紹介するコードは上記リポジトリにあげてあります。 はまりどころ 1. itemSize と groupSize を .estimated にする必要がある 例えば、height が可変の場合、グループの heightDimension を .estimated にして、レイアウトアイテムの heightDimen…

Compositional Layout におけるレイアウト構築のおすすめ

Compositional Layout の2列表示 Compositional Layout を使って、上記のような一方向のみスクロールできるグリッドレイアウトを構築する場合の実装方法についてのおすすめ。 基本 制約との二重管理になってしまうので可能な限り .absolute の使用は避け、 S…

DiffableDataSource で apply 後の UICollectionView の contentSize を取得する

問題 UICollectionViewDataSource を使っている場合では、 下記のように reloadData 直後には collectionView の contentSize が更新されている。 collectionView.reloadData() collectionView.layoutIfNeeded() // collectionView.contentSize が更新されて…

Appearance の設定方法

iOS 13 から Appearance の設定方法が追加されていた。 以前の方法もまだ非推奨になっておらず引き続き利用できるみたいだけど、 Legacy Customizations と表記されていて新しい設定方法が推奨されている。 新しい設定方法は standardAppearance プロパティ…

UICollectionView の UICollectionReusableView の位置がおかしい時

class SampleListViewController: UIViewController, UICollectionViewDatasource, UICollectionDelegate { @IBOutlet weak var collectionView: UICollectionView! { didSet { collectionView.register( UINib(nibName: "FooterIndicatorView", bundle: nil…

画面遷移のアニメーションをカスタムする

UINavigationController を使った画面遷移のアニメーションのデフォルトは、横からスライドするアニメーションですが、これをカスタムすることができます。 最近、アニメーションをカスタムしたりといったようにカスタムトランジションについて学んでみたの…

UIPickerView に UILabel を表示するライブラリをつくった

タイトルの通り、 UIPickerView に UILabel を表示するライブラリを作りました。 github.com これを使うとこんな感じにコンポーネントごとに簡単にラベルを表示することができます。 なお、Carthage からインストールできます。 使い方 LabelPickerComponent…

instantiateInitialViewController() が nil になる

同じことで何度もはまっている気がするのでメモ。 SampleViewController の Storyboard と Class を追加して、Storyboard から以下のようにインスタンスを作ろうとすると、nil になってしまう。 let storyboard = UIStoryboard(name: "SampleViewController"…

UIPickerView の使い方

UIPickerView とはこういうやつです。 これを使うための最低限の部分です。 UITableView 等と同様に DataSource と Delegate を設定して、表示する列数、行数、要素を各メソッドで return するといった感じです。 import UIKit class ViewController: UIView…

UIAlertController 使ってみた

UIAlertController を使うことで Alert や Action Sheet を画面に表示することができます。 Alert や Action Sheet とはこういうやつ↓です。 Alert Action Sheet 使う際の流れとしては、以下のような感じです。 Alert も Action Sheet もやることは同じなの…