iOSと同じカレンダービューを作成しようとしていますが、これは4年間です。添付UICollectionViewCellのUICollectionView遅い/遅いスクロール
The hierarchy is like: UICollectionView: One Section for each year UICollectionViewCell: 12 cells/items for 12 months in an year UICollectionView: UICollectionViewCell: Upto 31 cells for month day string, which have UILabel as their content.
スクリーンショット。ラグスクロールを乗り越えるためには
、私は月・セルのデータソースを削除しました。コンテナビューコントローラ自体は、両方のコレクションビューのデータソースです。
12か年コレクションビューは、年値のインデックスパスを格納するためにサブクラス化されています。 https://ashfurrow.com/blog/putting-a-uicollectionview-in-a-uitableviewcell/
しかし、それを表示する前に月のセルでreloadDataを呼び出していたときに問題が残っていました。
これを解決するには、UICollectionViewCellのprepareForReuse()メソッドをオーバーライドし、monthCollectionViewCellのindexPath、delegateおよびdatasourceプロパティをnilに設定しました。また、reloadData呼び出しを削除しました。しかし、スクロールはまだ遅いです。
チュートリアルのリンクは私のワークフローとほぼ同じです。 https://github.com/nipun0505/TestCalendarView
私は毎月独自の「UICollectionView」を作成しないことを真剣に検討します。あまりにも多くのビューをネストしています。代わりに、12個のセルを持つ単一の 'UICollectionView'を用意し、テキスト自体を描画し、独自のヒットテストを行うカスタム' UIView'サブクラスを構築します。 –
代わりに複数のCATExtLayersを使用しますか? – Nil
['drawRect:'](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/instm/UIView/drawRect :)をオーバーライドします。 NSString' [描画メソッド](https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/index.html#//apple_ref/occ/instm/NSString)を使用します。/drawAtPoint:withAttributes :) –