UICollectioViewのSelf-sizing Cell、とても便利ですよね! ただ以下のようなケースは、単純にいかなかったりします。 Vertical Flow Layoutを使ったグリッド表示を行う 各セルは画面サイズに合わせ、幅と高さを調整する 例えば画面全体にUICollectionViewを配置しこの中にセルを2列にグリッド表示したい場合、カスタムのUICollectionViewCellのレイアウトを画面半分の大きさで作れば良さそうです。 想像がつくかと思いますが、仮にiPhone7の大きさに合わせてレイアウトしても、iPhone7 Plusでは無駄な余白ができ、iPhone SEでは2列に表示されません! これを解決するには、UICollectionViewDelegateFlowLayoutのsizeForItemAtIndexPath()を実装する必要があります。
読書メーターの本検索画面のようなグリッドレイアウトが作りたくていろいろ調べたので、その実装方法についてまとめます。 作りたいレイアウト 読書メーターの「本を探す」という画面では、以下のように検索結果がレイアウトされます。 以下ではこのグリッドレイアウト部分の実装方法についてご紹介します。 作ったもの こんな感じのレイアウトになりました。 左がiPhone5s、右がiPhone Xs Maxの画面です。 画面サイズに合わせてセルの大きさが伸縮しているところがポイントです。 なお、以下で紹介する実装はiOS11と12で動作確認をしています。 セルの実装 セルのレイアウトはxibで作ります。 CollectionViewCell直下にコンテナとなるUIViewを配置し、コンテンツとなるビューはその配下に配置していきます。 制約はコンテナビューに対してつけていきます。 ここでのポイントは幅や高さに
Familiar friendsIt’s hard to imagine any apps that don’t use table view or collection view, via classes like UITableView, UICollectionView in iOS, tvOS or NSTableView, NSCollectionView in macOS. Most of the time, we fetch data from the backend, cache and filter to show that data as list or grid. And later, when data has changed, we update your interface to reflect that some items have been inserte
Apple謹製アプリを見てみると、コレクションビューのヘッダーがこういう動きをしていました。 これ実装したいですよね。しかもどうせなら複数セクションある場合にはStickyなヘッダーを実現したいですよね。 ライブラリあるかなーと思ったら意外と横方向のはなかったので、UICollectionViewのカスタムLayoutとして作りました。 iOSにも対応してます。 toshi0383/HorizontalStickyHeaderLayout まずは提供されている以下の6つのdelegateを実装します。それぞれのセルとヘッダーのサイズやマージンを指定します。 @objc public protocol HorizontalStickyHeaderLayoutDelegate: class { func collectionView(_ collectionView: UICollection
【Swift】ひとつの画面に複数のUICollectionViewやUITableViewを実装してみた【StackView】 どうも。Reoです。 今回は、一つの画面に複数の UICollectionView と UITableView を実装してみたお話です。 めちゃくちゃよくあるレイアウトですよね! 数年 Swift をやっていて今更こんな話?って気もしますが、気にしないで書いていこうと思います。 環境 記事を書いてる時点の環境です。 Xcode 11.1 Swift 5.1 iOS 13.1.3 GitHub にサンプルリポジトリを作りました。 uruly/MultipleCollectionView: Set multiple UICollectionView or UITableView in UIViewController. つくるもの 例えば、レシピアプリだったら。 ヘッ
2019/8/7 追記 iOS12以前でもUICollectionViewCompositionalLayoutが使用できるようにするライブラリについて追記しました 2019/8/21 追記 Xcode11 Beta6でNSDiffableDataSourceSnapshotのメソッドがmutatingになったので変数をletからvarに変更しました。 iOS14のアップデートについてはこちら https://qiita.com/shiz/items/4227accc7d13ae439d1d WWDC2019ではSwiftUIの登場に注目が浴びていますが UICollectionView(UITableViewなども含まれる)にも すごく大きな変化がありました。 iOS13以降ではこのスタイルが主流になるのではないかとも感じており この機会にまずは何が変わったのかについて LayoutとD
かなりマニアックなtipsシリーズです。 UITableViewCellにUIButtonを置いた場合、タッチしてすぐに指を離すとボタンがハイライト状態になりません。プログラム的に見ると、ちゃんと押されているのですが・・・ 使ってる側から見ると、まったく反応していないように見えて不親切です。 しばらく押してから離すとハイライト状態になりますが・・・ わかりにくいですよね? これをどうにかする方法のメモです。 動作を確認した環境 環境 情報 Xcode 7.2.1 (7C1002) iOS 9.2 Swift 2.1.1 Date 2016/2/23 すぐに反応するようにする方法 すぐに反応してくれない原因はUIScrollViewのdelaysContentTouchesがtrueになっていることです。たぶん。 ですから、これをfalseにしてやればいいんですが、UITableViewは内
[iOS] UICollectionView のレイアウトクラスを作成して「左右のアイテムをチラ見せするレイアウト」を実現する はじめに こんにちは。モバイルアプリサービス部の平屋です。本記事では UICollectionView のレイアウトのカスタマイズに関する情報をご紹介します。 以下の gif 画像のように「スクロール可能なビューをアイテムごとにスクロールさせる画面」を実装する機会がありまして、今回は UICollectionView と UICollectionViewFlowLayout の サブクラス を組み合わせて実現しました。 開発環境 開発環境は下記の通りです。 OS X 10.10.5(14F27) Xcode Version 6.4 (6E35b) / iOS SDK 8.4 development target: iOS 8.0 実現したい動作 今回実現したい動作
こんにちは。新規サービス開発部の中村です。普段は「たべドリ」アプリの開発をしています。「たべドリ」は料理の学習アプリです。詳細はこちらの記事をご覧ください。本記事では UICollectionView でページングスクロールを実装する方法について解説します。 概要 上記画像が今回解説する iOS アプリのUIです。左右のコンテンツが少し見えているカルーセルUIで、以下の要件を満たすものです。 先頭にヘッダーを表示する セルが水平方向にページングスクロールする 色々な実装方法があると思いますが、今回はヘッダーがあるため複数の異なる幅のViewを表示させながら、ページングスクロールを実現する方法を解説します。実装のポイントは以下の2点です。 UICollectionViewFlowLayoutのサブクラスを作成しtargetContentOffset(forProposedContentOff
UICollectionViewには、セルの強調・選択状態を管理する仕組みが備わっています。 UICollectionViewDelegateプロトコルに用意されているメソッドを実装することで、セルが強調、選択された時にセルの見た目を変化させることができます。 本記事ではこれらのメソッドを実装し、強調・選択状態に合わせてセルの背景を変化させる例をご紹介したいと思います。 なお、本記事では説明に必要な箇所のコードのみ掲載しています。 ベースとなる実装については以下の記事を参照してください。 UICollectionViewを必要最低限のコードで実装してみる セルの強調時に背景色を変化させる ベースの実装では以下のように背景色が赤のセルが並んでいます。 これらのセルが強調状態になった時に、背景色が青に変化するようにしてみます。 はじめに、UICollectionViewDataSourceのc
はじめに iOS 10からの UICollectionViewCell の Self-sizing Cells に関する情報をまとめたいと思います。はじめは簡単そうに思えたのですが意外と落とし穴が多くて苦労したため、その知見も残しておきます。 参考: WWDC2016: What's New in UICollectionView in iOS 10(21:40 あたり〜) https://developer.apple.com/videos/play/wwdc2016/219/ 追記: 結論から言うと、 UICollectionViewFlowLayoutAutomaticSize は少なくとも iOS 10 では バグだらけで使い物になりませんでした。 特にセクションヘッダー/フッターを利用しているコレクションビューの場合はそれらの座標がずれる等の謎の現象に悩まされ、結局解決することは
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く