問題タブ [uicollectionreusableview]

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 投票する
6 に答える
8061 参照

swift - UICollectionview scrollToItemAtIndexPath、アニメーションが完了するまで可視セルをロードしない

私はUICollectionView142個のセルを持っています。7.5 はいつでも表示されます。

セルをindexPath0 から 100 に移動しています。しかし、その新しい位置までスクロールしたいのです。

以下のコードは正常に動作します。ただし、移動とスクロールをアニメーション化しますが、その後、中央/移動されたセルの前後にセルをロードします。細胞が再利用できるからだと思います。しかし 142 では、すべてをプリロードすることはできません。

100 の前に 4 つ、後の 4 つの新しい位置を囲むセルをプリロードしindexPath、移動とスクロールのアニメーションを確認したいと思います。お願いできますか?

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

ios - セクション データを削除して UICollectionView をリロードした後でもセクション ヘッダーが保持される

セクションの最後の項目を削除した後、目標はヘッダーを含むセクション全体を から削除することUICollectionView.です。

ビューを更新すると (ナビゲーション スタックからポップしてビューに戻ることにより) UICollectionView、セクション ヘッダーが削除された状態で正しく表示されます。

テスト ケースにはセクションが 1 つしかないためUICollectionView、最後の項目を削除すると は空白になります。

提案?

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

ios - ヘッダーを UICollectionView に設定する方法

デフォルトのセクション ヘッダーを に設定したいのですがUICollectionView、以下のコードを使用するとクラッシュしました。

-viewDidLoad

-viewForSupplementaryElementOfKind

ありがとうございました

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

ios - カスタムUICollectionViewLayoutでviewForSupplementaryElementOfKindが呼び出されていない

カスタムを作成UICollectionViewLayoutし、ストーリーボードの Collection View Controller に配置しました。アイテム/セルの表示にそれほど問題はありませんでした。私の問題は、viewForSupplementaryElementOfKindが呼び出されていないことです。その理由を特定することはできないようです。デフォルトのレイアウトに戻そうとしましたが、それを呼び出しますが、カスタムが必要UICollectionViewLayoutです。NSLog確認するために s を残しましたviewForSupplementaryElementOfKindが、呼び出されていません。

ここに私の MyCollectionViewController.m があります

ここに私の MyFlowLayout.m があります

MyFlowLayout でわかるように、私が試したことがいくつかありますが、それでも呼び出されませんでしたviewForSupplementaryElementOfKindlayoutAttributesForItemAtIndexPath持っているので実装してみlayoutAttributesForSupplementaryViewOfKindました。ヘッダーが生成されるかどうかを確認するためだけに表示される 75 や 320 などの固定番号も使用してみました。ご覧のデリゲートは、ビューの高さを取得するためのものです。

ヘッダーに表示される十分なスペースを与えて、NSLogs を全体に残しましたが、まだ(UICollectionReusableView*)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath呼び出されていません。

ここに私が見て試したもののいくつかがあります:stackoverflowですが、私が含めたコメント付きのコードからわかるように。それでもうまくいきませんでした。

助けてくれてありがとう。

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

ios - UILabels をプログラムで Collection Cell に迅速に追加する

Collection CellのsubViewにUILabels を追加しようとしています。しかし、他のセルにスクロールして戻ってくると、すべての UIlabels が両方のセルに表示され、一部は他のセルの下に書き込まれます..

で試したcollectionView.cellForItemAtIndexPath(indexPath) as? CollectionViewCellのですが、使ってみると何もUIlabelが表示されませんでした(折れ点で試してみたら、if文の後に出ません)

どうすれば修正できますか??

ありがとう!!!

編集

プログラムで UILabel を作成しようとしました。しかし、そのように、StoryBoard で設計された要素と、プログラムで作成された要素を使用しました。そして実際には、これが原因でできません:

セルのすべてのコンテンツをプログラムで作成し (collectionView はストーリーボードで作成されます)、完全に機能します。

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

ios - 異なるサブビューを持つカスタム CollectionViewCell?

というカスタム collectionViewCell を作成していますMessageCell。このメッセージ セルには、headerLabelmessageContainerView、およびの 3 つのコンポーネントがありfooterLabelます。問題は、メッセージの種類 (ビデオ、トランザクション、配信確認、写真、テキストなど) に応じて、特定のアクションなどを含む特定の種類のビューを表示したいことです。

ここに画像の説明を入力

これを達成するための最良の方法は何ですか? コンテナー ビューをセル サブクラスとして設定しようとしましたがUIView、メッセージの種類に応じて、特定のサブビューに等しく設定しましたが、機能しません。

どんな助けでも大歓迎です。

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

ios - コレクションの再利用可能なビューがカスタム レイアウトで表示されない

最初に CollectionReusableView を使用して UICollectionView を作成し、必要なデリゲート メソッドを実装しました。

こうすることで、collectionView Header が正しく表示されるようになりました。しかし、CollectionViewLayout をカスタム レイアウト (フロー レイアウトではない) に変更したときに問題が検出され、ヘッダー ビューが表示されなくなりました。デバッグ中に、デリゲート メソッド viewForSupplementaryElementOfKind: atIndexPath: が呼び出されていないことがわかりました。

RFQuiltLayoutを UICollectionView レイアウトとして使用していることに注意してください。

よろしくお願いいたします。

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

ios - UICollectionView補助ビューを正しく挿入または削除するにはどうすればよいですか

短い質問:

または方法performBatchUpdates:と同様に、ブロック内のセルやセクションなどの補足ビューを追加および削除する方法はありますか?insertItemsAtIndexPaths: deleteItemsAtIndexPaths:reloadItemsAtIndexPaths:

長い説明:

セクション付きを使用UICollectionViewします。セルはグリッドのように配置され、各行には最大 6 つのセルを含めることができます。セルの合計量がセクションのすべての行を埋めていない場合は、追加の補足ビューを追加します。追加の補足ビューは、空きスペースを埋めるだけです。したがって、結果として、各セクションは利用可能なすべてのセルで完全に埋められ、(可能な) 残りの空のスポットは補足ビューで埋められます。したがって、各行には、セルまたは補足ビューのいずれかの 6 つの視覚要素があります。

それを達成するために、次の実装でカスタムUICollectionViewFlowLayoutベースのレイアウトを実装しました。prepareLayout:

すべてのデータが最初から利用可能で、データに変更がない場合、これはうまく機能します。ただし、存続期間中にデータが追加および削除されると、惨めに失敗します。セルの挿入と削除によりperformBatchUpdates:、補足ビューが台無しになります。

何が起こるべきか:

insertItemsAtIndexPaths:同時に補足ビューで挿入されるすべてのセルをindexPath削除する必要があります。さらに、新しい補足ビューで削除されるすべてのセルに対してdeleteItemsAtIndexPaths:、同時に追加する必要がありますindexPath

問題:

私のprepareLayout:レイアウトの が呼び出され、正しい が計算されますlayoutAttributes。しかしlayoutAttributesForSupplementaryViewOfKind:atIndexPath:、奇妙なために呼び出されindexPathsます。具体的には、配列から削除されたlayoutAttributesForSupplementaryViewOfKind:atIndexPath:old に対して が呼び出されます!indexPathssupplementaryViewAttributeList

例:

新しいセルが挿入された場合、 はprepareLayout:を正しく削除しますlayoutAttributesが、layoutAttributesForSupplementaryViewOfKind:atIndexPath: 使用できなくなって削除された indexPath に対して が呼び出されます。そしてそのためだけに。indexPath他のすべての補足ビューについて、他の s に対する追加の呼び出しはありません。

なぜそれがlayoutAttributesForSupplementaryViewOfKind:atIndexPath:求められindexPaths、もう利用できないのですか? 補足ビューを正しく削除、挿入、または再ロードするにはどうすればよいですか? 何が恋しいですか?

ソース:

完全なソースは次の場所にあります。

カスタム レイアウト: https://github.com/sarn/ARNClassicFilms/blob/master/classicFilms/classicFilms/layout/ARNCollectionViewFocusGuideFlowLayout.m

CollectionView コントローラー: https://github.com/sarn/ARNClassicFilms/blob/master/classicFilms/classicFilms/view-controllers/ARNMovieOverviewController.m (performBatchUpdates:クラスの最後のメソッドにあります)