問題タブ [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.
swift - UICollectionview scrollToItemAtIndexPath、アニメーションが完了するまで可視セルをロードしない
私はUICollectionView
142個のセルを持っています。7.5 はいつでも表示されます。
セルをindexPath
0 から 100 に移動しています。しかし、その新しい位置までスクロールしたいのです。
以下のコードは正常に動作します。ただし、移動とスクロールをアニメーション化しますが、その後、中央/移動されたセルの前後にセルをロードします。細胞が再利用できるからだと思います。しかし 142 では、すべてをプリロードすることはできません。
100 の前に 4 つ、後の 4 つの新しい位置を囲むセルをプリロードしindexPath
、移動とスクロールのアニメーションを確認したいと思います。お願いできますか?
ios - セクション データを削除して UICollectionView をリロードした後でもセクション ヘッダーが保持される
セクションの最後の項目を削除した後、目標はヘッダーを含むセクション全体を から削除することUICollectionView.
です。
ビューを更新すると (ナビゲーション スタックからポップしてビューに戻ることにより) UICollectionView
、セクション ヘッダーが削除された状態で正しく表示されます。
テスト ケースにはセクションが 1 つしかないためUICollectionView
、最後の項目を削除すると は空白になります。
提案?
ios - ヘッダーを UICollectionView に設定する方法
デフォルトのセクション ヘッダーを に設定したいのですがUICollectionView
、以下のコードを使用するとクラッシュしました。
の-viewDidLoad
の-viewForSupplementaryElementOfKind
ありがとうございました
ios - カスタムUICollectionViewLayoutでviewForSupplementaryElementOfKindが呼び出されていない
カスタムを作成UICollectionViewLayout
し、ストーリーボードの Collection View Controller に配置しました。アイテム/セルの表示にそれほど問題はありませんでした。私の問題は、viewForSupplementaryElementOfKind
が呼び出されていないことです。その理由を特定することはできないようです。デフォルトのレイアウトに戻そうとしましたが、それを呼び出しますが、カスタムが必要UICollectionViewLayout
です。NSLog
確認するために s を残しましたviewForSupplementaryElementOfKind
が、呼び出されていません。
ここに私の MyCollectionViewController.m があります
ここに私の MyFlowLayout.m があります
MyFlowLayout でわかるように、私が試したことがいくつかありますが、それでも呼び出されませんでしたviewForSupplementaryElementOfKind
。layoutAttributesForItemAtIndexPath
持っているので実装してみlayoutAttributesForSupplementaryViewOfKind
ました。ヘッダーが生成されるかどうかを確認するためだけに表示される 75 や 320 などの固定番号も使用してみました。ご覧のデリゲートは、ビューの高さを取得するためのものです。
ヘッダーに表示される十分なスペースを与えて、NSLogs を全体に残しましたが、まだ(UICollectionReusableView*)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
呼び出されていません。
ここに私が見て試したもののいくつかがあります:stackoverflowですが、私が含めたコメント付きのコードからわかるように。それでもうまくいきませんでした。
助けてくれてありがとう。
ios - UILabels をプログラムで Collection Cell に迅速に追加する
Collection CellのsubViewにUILabels を追加しようとしています。しかし、他のセルにスクロールして戻ってくると、すべての UIlabels が両方のセルに表示され、一部は他のセルの下に書き込まれます..
で試したcollectionView.cellForItemAtIndexPath(indexPath) as? CollectionViewCell
のですが、使ってみると何もUIlabelが表示されませんでした(折れ点で試してみたら、if文の後に出ません)
どうすれば修正できますか??
ありがとう!!!
編集
プログラムで UILabel を作成しようとしました。しかし、そのように、StoryBoard で設計された要素と、プログラムで作成された要素を使用しました。そして実際には、これが原因でできません:
セルのすべてのコンテンツをプログラムで作成し (collectionView はストーリーボードで作成されます)、完全に機能します。
ios - 異なるサブビューを持つカスタム CollectionViewCell?
というカスタム collectionViewCell を作成していますMessageCell
。このメッセージ セルには、headerLabel
、messageContainerView
、およびの 3 つのコンポーネントがありfooterLabel
ます。問題は、メッセージの種類 (ビデオ、トランザクション、配信確認、写真、テキストなど) に応じて、特定のアクションなどを含む特定の種類のビューを表示したいことです。
これを達成するための最良の方法は何ですか? コンテナー ビューをセル サブクラスとして設定しようとしましたがUIView
、メッセージの種類に応じて、特定のサブビューに等しく設定しましたが、機能しません。
どんな助けでも大歓迎です。
ios - コレクションの再利用可能なビューがカスタム レイアウトで表示されない
最初に CollectionReusableView を使用して UICollectionView を作成し、必要なデリゲート メソッドを実装しました。
と
こうすることで、collectionView Header が正しく表示されるようになりました。しかし、CollectionViewLayout をカスタム レイアウト (フロー レイアウトではない) に変更したときに問題が検出され、ヘッダー ビューが表示されなくなりました。デバッグ中に、デリゲート メソッド viewForSupplementaryElementOfKind: atIndexPath: が呼び出されていないことがわかりました。
RFQuiltLayoutを UICollectionView レイアウトとして使用していることに注意してください。
よろしくお願いいたします。
ios - UICollectionView補助ビューを正しく挿入または削除するにはどうすればよいですか
短い質問:
または方法performBatchUpdates:
と同様に、ブロック内のセルやセクションなどの補足ビューを追加および削除する方法はありますか?insertItemsAtIndexPaths:
deleteItemsAtIndexPaths:
reloadItemsAtIndexPaths:
長い説明:
セクション付きを使用UICollectionView
します。セルはグリッドのように配置され、各行には最大 6 つのセルを含めることができます。セルの合計量がセクションのすべての行を埋めていない場合は、追加の補足ビューを追加します。追加の補足ビューは、空きスペースを埋めるだけです。したがって、結果として、各セクションは利用可能なすべてのセルで完全に埋められ、(可能な) 残りの空のスポットは補足ビューで埋められます。したがって、各行には、セルまたは補足ビューのいずれかの 6 つの視覚要素があります。
それを達成するために、次の実装でカスタムUICollectionViewFlowLayout
ベースのレイアウトを実装しました。prepareLayout:
すべてのデータが最初から利用可能で、データに変更がない場合、これはうまく機能します。ただし、存続期間中にデータが追加および削除されると、惨めに失敗します。セルの挿入と削除によりperformBatchUpdates:
、補足ビューが台無しになります。
何が起こるべきか:
insertItemsAtIndexPaths:
同時に補足ビューで挿入されるすべてのセルをindexPath
削除する必要があります。さらに、新しい補足ビューで削除されるすべてのセルに対してdeleteItemsAtIndexPaths:
、同時に追加する必要がありますindexPath
。
問題:
私のprepareLayout:
レイアウトの が呼び出され、正しい が計算されますlayoutAttributes
。しかしlayoutAttributesForSupplementaryViewOfKind:atIndexPath:
、奇妙なために呼び出されindexPaths
ます。具体的には、配列から削除されたlayoutAttributesForSupplementaryViewOfKind:atIndexPath:
old に対して が呼び出されます!indexPaths
supplementaryViewAttributeList
例:
新しいセルが挿入された場合、 はprepareLayout:
を正しく削除しますlayoutAttributes
が、layoutAttributesForSupplementaryViewOfKind:atIndexPath:
使用できなくなって削除された indexPath に対して が呼び出されます。そしてそのためだけに。indexPath
他のすべての補足ビューについて、他の s に対する追加の呼び出しはありません。
なぜそれがlayoutAttributesForSupplementaryViewOfKind:atIndexPath:
求められindexPaths
、もう利用できないのですか? 補足ビューを正しく削除、挿入、または再ロードするにはどうすればよいですか? 何が恋しいですか?
ソース:
完全なソースは次の場所にあります。
CollectionView コントローラー:
https://github.com/sarn/ARNClassicFilms/blob/master/classicFilms/classicFilms/view-controllers/ARNMovieOverviewController.m
(performBatchUpdates:
クラスの最後のメソッドにあります)