問題タブ [uicollectionviewlayout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4634 参照

ios - UICollectionView: 新しいレイアウトとターゲット コンテンツのオフセットを設定します

UICollectionViewと 2 つのサブクラスがありUICollectionViewFlowLayoutます。セルが選択されたらsetCollectionViewLayout:animated:、レイアウトを切り替えるために呼び出します。トランジションが完了すると、選択したセルが中央に配置されますが、これで問題ありません。

セルを実際に選択せずに、同じセンタリング動作を実行できますか? さまざまなメソッドを呼び出そうとしましたがsetContentOffset:animated:、成功しませんでした。contentOffsetまたは、表示するレイアウトに自己定義を指定できますか?

selectedより明確にするために、セルのプロパティを変更せずに次のようにしたいと思います。ここに画像の説明を入力

編集#1

これは私がすでに持っているものです:

問題ないようです: https://www.dropbox.com/s/9u6cnwwdbe9vss0/17249646-0.mov


しかし、スキップするとselectItemAtIndexPath

これはそれほど細かいものではありません (手を振るアニメーションのようなものです): https://www.dropbox.com/s/s3u2eqq16tmex1v/17249646-1.mov

0 投票する
1 に答える
1994 参照

objective-c - UICollectionViewFlowLayout の layoutAttributesForItemAtIndexPath は、「早すぎる」と呼ばれると nil を返します。

私のセットアップ: フロー レイアウトの標準 UICollectionView。データソースはコントローラーに設定されています。レイアウトは xib ファイルで通常どおりに構成されます。コントローラの viewDidLoad メソッドで layoutAttributesForItemAtIndexPath: を介してセルのレイアウト属性にアクセスしようとすると、次のようになります。

出力は

レイアウトには、正しいレイアウト属性を提供するために必要なすべての情報が含まれています。viewWillAppear: ではまだ機能しませんが、viewDidAppear: では「魔法のように」機能し始めます。

それを機能させるための非常に奇妙な方法を発見しました。レイアウト属性を要求する前に、collectionViewContentSize にアクセスするだけです。

出力は、ずっと予想どおりです。

ここで何が起こっているのですか?コンテンツのサイズにアクセスすると、レイアウトで何かがトリガーされると思いますが、これを行う適切な方法があるかどうかは誰にもわかりませんか? それとも、これは単なる迷惑なバグですか?

0 投票する
1 に答える
744 参照

ios - サイズの異なるアイテムを含む UICollectionViewFlowLayout

実行時UICollectionViewにアイテムの高さを変更できる場所があります。問題は、アイテムが他のアイテムよりも高い場合、そのアイテムが多くの空白に囲まれることです。

ここに画像の説明を入力

これを作成するプロパティを探しています:

ここに画像の説明を入力

UICollectionViewgithubの例やサードパーティの実装ではなく、使用したい。ありがとう。

0 投票する
0 に答える
243 参照

ios - iOS - UICollectoinView - 親ビューを子 UICollectionView にシームレスにスクロールさせる方法

カスタム無限グリッドUICollectionViewの上に約1〜2ページ分のコンテンツを配置し、すべてをシームレスにスクロールさせる最良の方法は何だろうか?

この時点で、グリッドの上のすべてのコンテンツを collectionView の補足ビューにすることを検討しています。それが最善の方法ですか?本当にコレクションの一部ではないコンテンツを collectionView の外に置く方が良いように思えます。

おそらく、親 scrollView と子 collectionView の間でスクロール イベントを共有するためのより良い方法があるでしょうか?

0 投票する
2 に答える
1839 参照

objective-c - UICollectionView は、performBatchUpdates で最大 10 秒間メイン スレッドをロックします。

NSFetchedResultsController によって駆動される、300 セルのコレクションビューがあります。すべてのオブジェクトが頻繁に更新されるため、その旨を通知するデリゲート メッセージを受け取り、テーブルビューと同様にコレクション ビューで更新を処理します。残念ながら、これが発生するたびにメインスレッドが数秒間ロックされます...理由はわかりません。これが私のコードです:

何が起きてる?一度に 300 個のオブジェクトすべてが更新されることは、アプリの実際の実行では常に発生するわけではありませんが、心配する必要があるほど十分です。ストック UICollectionViewFlowLayout を使用しています - もっとカスタムする必要がありますか?

0 投票する
1 に答える
14340 参照

iphone - カスタムレイアウトのUICollectionView - プログラムで補助ビューを追加する方法/場所は?

ストーリーボードで定義されたカスタム レイアウト クラスで UICollectionView を使用して、Circle Layoutの例を使用しています。

カスタム レイアウトを使用するコレクション ビューに補足ビューを追加する方法について、何らかのチュートリアルや段階的な説明はありますか?

コレクション ビューの紹介の例を見てきましたが、そのプロジェクトで補足ビューがどのように定義されているかを本当に理解できません。それらはフロー レイアウトを使用して絵コンテに登録されているようですが、そのプロジェクトのその後のレイアウト変更が補足ビューをどのように移動するかについて途方に暮れています。

0 投票する
3 に答える
11223 参照

ios - フロー レイアウトの UICollectionView セルの境界線

UICollectionView を使用して、タイトルの最初の文字で区切られた一連のセルをレイアウトしています。各セルには非常に細い境界線があり、セクション ヘッダーには上下に境界線が必要です。これが私の現在のプロトタイプです:

同じサイズの大きなセルが 4 行に並んだグリッドで、セクション間に細いライト グレーの見出しがあります。 狭い灰色の境界線は、セルと仕切りの端を示しています。

次のルールで現在の外観を実現します。

  1. 各セルの右端と下端をストロークします。
  2. 各セクションの見出しの下端をなでます。

これは私が望むものに非常に近いですが、2 つの欠陥があります。

  1. セクション見出しの前の行がいっぱいでない場合、見出しの上部に沿った境界線は画面の右端の手前で止まります。
  2. このスクリーンショットには表示されていませんが、行いっぱいの場合、行の最後のセルの右側の境界線がまだ描画されているため、画面の端に対して少し奇妙に見えます.

これを修正するための私の最善のアイデアは、各セルがセクションの最後の行にあるか、行の最後のセルにあるかをどうにかして伝えることです。次に、セルは問題のある境界線をオフにし、セクションの見出しは上部の境界線と下部の境界線を描画し、すべてがハンキードーリーになります。しかし、それを達成する方法はわかりません。

それを管理する方法、または私が目指している外観を得る別の方法について何か考えはありますか? 現在、UICollectionViewFlowLayout を使用しています。

0 投票する
3 に答える
10315 参照

ios - UICollectionView ヘッダーおよびフッター ビュー

私は UICollectionView を使用しており、セクション ヘッダーと共にグローバル ヘッダーとフッターが必要です。グローバル ヘッダーとフッターの両方が、残りのコンテンツと共にスクロールすることになっています。基本的に、これらは UITableView の tableHeaderView および tableFooterView プロパティとまったく同じように機能するはずです。

ダイアグラム

私が理解していることから、補足ビューは特定のセクションの上または下にあり、装飾ビューは機能しません。グローバル ヘッダーとフッターには、インタラクティブな要素が必要です。

数時間試した後、私は本当に髪を引っ張っています。contentInsets をハッキングしたり、コレクションビューにサブビューを追加したりするなど、いくつかの厄介な方法を見つけました。私が本当に探しているのは、これを行うためのクリーンな方法です。

アドバイスをお待ちしております!