問題タブ [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.
ios - UICollectionViewの「スティッキー」フッターを作成するには?
UICollectionView
特定のページの画面境界の下部に「くっつく」フッターを提供する最良の方法は何ですか? が全画面UICollectionView
表示で、セクションが 1 つしかないとします。
現在、 でUICollectionReusableView
オブジェクトを提供していますがcollectionView:viewForSupplementaryElementOfKind:atIndexPath:
、(予想どおり) コレクションのコンテンツがこの画面の境界を超えると、フッターが画面外に押し出されます。
キーは装飾ビューだと思いますが、これらがどのように機能するかについての良いコード(非IB)の例を見つけることができません.Appleのドキュメントは、私の意見では、この特定の主題について不明確です.
再更新: 装飾ビュー
装飾ビューを作成して実験した後(このチュートリアルを使用)、いくつかの制限にぶつかりました。つまり、装飾ビューオブジェクトとUICollectionViewController
コントローラー オブジェクトの間にコールバックが実際には存在しないということです (装飾ビューUICollectionViewLayout
はオブジェクトによって管理され、UICollectionViewController
物体)。Apple は、装飾ビューが視覚的な装飾に限定され、データ駆動型ではないことに非常に真剣に取り組んでいるようです (ただし、明らかにこれを回避することはできます)。
したがって、「正しい」解決策はまだわかりませんが、その間、静的UIView
オブジェクトを作成し、オブジェクトからそれを管理しているだけですUICollectionViewController
。問題なく動作しますが、気分が悪いです。
再更新: Sticky HEADERS
過去数か月にわたって、さまざまなプロジェクトで同様の問題に取り組み、最近、スティッキー HEADERS の解決策を見つけました。同じことがフッターにも当てはまると思いますが、テストしていません。
ヘッダーの詳細はこちら:
セクションヘッダーがUITableViewプレーンスタイルで行うように、UICollectionViewで補足ビューをフロートさせる方法
実装はかなり重いですが、ほとんどの状況でうまく機能するようです。
この質問についてすぐにこれ以上の動きがない場合は、重複として閉じて、上記の記事を指摘します.
objective-c - iOS6 UIStoryboard UICollectionReusableView を UICollectionView オブジェクトに追加する方法は?
で作業しているときにばかげた問題に遭遇しました-上部の位置にドラッグしてUICollectionView
" " を追加しました。これは、表示されるヘッダーの一種であると期待しています (に似ています)。ただし、アプリを実行すると、セルの上に再利用可能なビューと同じ高さの空白が表示されますが、他には何も表示されません。UICollectionReusableView
UICollectionView
UITableView
アプリの実行中にストーリーボードで定義された再利用可能なビューが表示されるようにするには、他にどのような手順を実行する必要がありますか?
ios - UICollectionView & カスタム UICollectionReusableView が機能しない
ヘッダーでカスタムUICollectionReusableView
(独自のクラスと XIB を持つ)を使用しようとしていますUICollectionView
。しかし、ヘッダーの代わりにデータを取得した後、何もありません。
私の手順:
viewDidLoadにクラスを登録する:
/li>表示しようとしています:
/li>
誰が何が悪いのか教えてもらえますか? ) アドバイスありがとうございます
ios - UICollectionViewFlowLayout の各セルにタイトル/ラベル補助ビューを追加するにはどうすればよいですか?
私が見たすべての例では、補足ビューをヘッダーまたはフッターとして使用しています。フロー レイアウトの各セルの上または下にラベルを追加する必要があります。
最初は、一種の補足ビューのクラスを登録してからcollectionViewForSupplementaryElementOfKindAtIndexPathを実装するだけでよいと思っていましたが、そのままではFlowLayoutはヘッダーとフッターのみをサポートしているようです。
アップルのドキュメントは、それ以上のものにはFlowLayoutのサブクラス化作業が必要であることを示唆しているようです。
Apple がフロー レイアウトに対して行った作業をやり直したくないし、セルのサイズが異なることが予想されるため、フロー レイアウトを拡張してセルごとの補足ビューをサポートしたいと考えています。
UICollectionViewFlowLayout をサブクラス化することで、これを達成できるはずだと考えています。
しかし、各セルの補足ビューを要求するようにフロー レイアウトに指示する方法がわかりません。supp ビューのクラスを登録するだけでは、レイアウトがlayoutAttributesForSupplementaryViewOfKindを呼び出すことは強制されません。現状では、それは私のサブクラスでは決して呼び出されません。クラスをsuppビューに登録する場合、セクション内の各項目のsupビューを要求する必要があると考えました...これは間違った仮定のようです。
レイアウトが NSDictionaries を使用して手動で管理されている素晴らしいカスタム レイアウトの例を見てきましたが、その知識を組み込みのフロー レイアウトに適用する方法がわかりません。
ios - UICollectionView ヘッダーと互換性のあるビュー
ストーリーボードに を構築しUICollectionView
、必要なデータ ソースとデリゲート メソッドをすべてビュー コントローラーに実装しました。ストーリーボードで、コレクション ビューのプロパティを確認しSection Header
、ヘッダー ビューのクラスをUICollectionResusableView
(ストーリーボードで) のサブクラスに設定しました。
ここから、ストーリーボードを介して 2 つの UI 要素 (ラベルとセグメント化されたコントロール) をヘッダー ビューにドラッグします。
プログラムが実行されると、コレクション ビューのヘッダー ビューにラベルが表示されますが (実際のコードは必要ありません)、セグメント化されたコントロールには表示されません。ただし、セグメント化されたコントロールを通常UIView
の にドラッグすると、表示され、コードを必要とせずに操作できます。のコードでインスタンス化してもIBOutlet
、セグメント化されたコントロールは表示されません。
セグメント化されたコントロールが通常のコレクション ビューのヘッダーにUIView
表示されないのはなぜですか? また、ラベルが問題なく表示されるのはなぜですか?
アップデート
カスタム ヘッダー ビューの init メソッドを次に示します。ここでは、セグメント化されたコントロールをプログラムで (ストーリーボードではなく) 追加しようとしました。
リクエストに応じ-[UICollectionReusableView viewForSupplementaryElementOfKind:]
て、メイン ビュー コントローラーのメソッドを次に示します。
objective-c - 補足ヘッダー ビューを UICollectionView に追加する際のエラー
補足ヘッダー ビューを実装すると、次のエラーが発生します。
これはヘッダービューを作成しているコードです
エラーは dequeueReusableSupplementaryViewOfKind メソッドで発生します。
Collection View Controller の initWithCoder にこれらの 2 行を追加しました。
そのため、UI 要素への参照があります。とにかく、ヘッダーにレイアウトを設定する方法が見つかりません。
これを同じ Collection View Controller に追加しようとしましたが、デバッガーを配置して確認したため、このコードにはヒットしませんでした
誰かがこの問題を見たことがありますか?どのように解決しましたか? また、XCode 5 Developer Preview 5 を使用し、iOS7 向けに開発しています。
ios - UICollectionView フッター。ドキュメントを読んでも、まだ表示するものを取得できません。プログラムで行う必要があります
に補足フッターを追加しようとしていUICollectionView
ます。Apple のドキュメントによると、すべての適切なメソッドを実行しているように見えますが、何らかの理由で次のようになります。
…全然呼ばれない。
UICollectionReusableView
というクラスにサブクラス化しましたSmartActionFooterView
。
ではViewController
、ViewDidLoad
メソッドで、ビューを再利用識別子として登録および関連付けています。
そして、UICollectionFlowDelegate
メソッドをオーバーライドします...
これNSLog
がプリントアウトです。
私はそれからUICollectionViewDataSource
メソッドを打っています...
NSLog
ただし、これは何も印刷していませんが、その理由については途方に暮れています。
これをすべてプログラムで行う必要があるという制約があります (ストーリーボードはありません)。
ありがとう!