問題タブ [uicollectionview]
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 - UICollectionViewControllerでUISearchDisplayControllerを使用するにはどうすればよいですか?
UISearchDisplayController を UITableViewController と共に使用する場合、ユーザーが検索バーをタップするとアニメーション化されてナビゲーション バーが置き換えられます。
UICollectionViewController の上部で UISearchBar を使用するときに、同じ効果を得たいと思います。何か案は?
nsfetchedresultscontroller - UICollection ビュー & performBatchUpdate
UICollectionviewcontroller と NSFetchresultcontroller を使用できるアプリケーションを構築しようとすると、次のリンクが見つかりました「https://github.com/AshFurrow/UICollectionView-NSFetchedResultsController/blob/master/AFMasterViewController.m
コードはこちら
次のエラーがあります
_sectionsChange の NS ログには、次の出力が表示されます
この問題を解決する方法を知りたいと思っているので、助けていただければ幸いです
ありがとうございました
iphone - UICollectionView/UICollectionViewLayout の回転または境界の変更でクロス フェードを無効にする最善の方法は何ですか?
UICollectionViewLayoutセルを円に配置するサブクラスがあります。YES呼び出しのレイアウトが返されますshouldInvalidateLayoutForBoundsChange:。回転すると、最初の位置にあるセルがフェードアウトし、最後の位置にあるセルがフェードインします。
レイアウトに次のコードを追加することで、フェードを無効にすることができ、アイテムの円が向きの変化に合わせて単純に回転するように見えます。
ドキュメントではメソッドが呼び出されることを示唆していないように見えるため、境界の変更でメソッドが呼び出されるのはなぜですか? ドキュメントには、コレクション ビューからのアイテムの挿入と削除に関連して呼び出されると記載されているようです。
回転中にクロスフェードを無効にするより良い方法はありますか?
ノート:
initialLayoutAttributesForAppearingItemAtIndexPath:ドキュメントには、デフォルトでメソッドは戻りますが、返された非 nil 値nilを呼び出すと記載されています。superUICollectionViewメソッドdeleteItemsAtIndexPaths:にシンボリックブレークポイントを設定しましたが、ローテーション中にヒットするものはありませんmoveItemAtIndexPath:toIndexPath:。insertItemsAtIndexPaths:
objective-c - iOS での UICollectionView の設定
UICollectionViewiOS アプリ用に をセットアップする方法を探し回っています。グーグルは、それがどのように機能するかではなく、それが何であるかについての投稿を掲載したいくつかのブログを表示するだけです. それからもちろん、役に立つ Apple のドキュメントもありますが、.UICollectionView
どのようにセットアップできますUICollectionViewか?
objective-c - UICollectionView performBatchUpdates を使用した更新の実行
UICollectionViewアイテムを動的に/アニメーションで挿入しようとしています。そのため、画像を非同期でダウンロードする機能があり、アイテムをバッチで挿入したいと考えています。
データを取得したら、次のことを行いたいと考えています。
の代わりに の***配列を渡す必要がありますNSIndexPaths。これは、挿入する新しい項目の場所を指す必要があります。場所を提供した後、その位置に表示される実際の画像をどのように提供すればよいのでしょうか。
ありがとうございました
アップデート:
resultsSizeself.resultsには、 のデータから新しいデータが追加される前のデータ ソース配列 のサイズが含まれnewImagesます。
objective-c - UICollectionView が表示されない
を拡張するView ControllerでUICollectionView プログラムでセットアップしようとしていますUIViewController。何らかの理由で、コレクション ビューがまったく表示されません。以下は私が持っているものです。
表示されないのはなぜですか?デリゲートとデータ ソースに接続し、サブビューとして に追加していself.viewます。私のコードには何が欠けていますか?
私の.hファイルでは:
私の.mファイルでは:
objective-c - UICollectionViewcellForItemAtIndexPathがセルを登録していません
UICollectionViewCell表示したいのは画像だけなので、使ってみました。のプロパティを使用UIColor colorWithImage:して、セルに画像を追加できます。UICollectionViewCellcontentView
私のloadView方法では、次のようにセルを登録しています。
[self.collectionView registerClass:[ImageCell class] forCellWithReuseIdentifier:@"MyCell"];
以下は私のcellForItemAtIndexPath方法です:
実行すると、デキューラインに到達するとすぐに、次のエラーでクラッシュします。
カスタムセルを設定するのに疲れて、それをクラスとして使用しましたが、同じエラーが発生しました。私のカスタムセルはUICollectionViewCellをサブクラス化し、デフォルトを除いて何も実装されていませんでしたinitWithFrame。これは、ビューの背景色を変更したかったためです。問題が何であるかはわかりませんが、誰かが私のコードを見て助けてくれませんか?私はこれをかなり長い間理解しようとしてきましたが、まったく運がありませんでした。
ios - UICollectionView setLayout:animated: zIndex を保持しない
setLayout:animatedを呼び出してUICollectionView2 つのレイアウトを切り替えると、現在表示されているセルがzIndexで設定されているレイアウト属性に準拠していないことに気付きましたlayoutAttributesForItemAtIndexPath:。
たとえば、UICollectionViewwithがある場合、セルが重なるように負UICollectionViewFlowLayoutの数に設定し、各セルに a を前のセルよりも高く設定すると、セルが下から上に積み上げられているように見えます。minimumLineSpacingzIndex
ただし、レイアウトを別のレイアウトに設定してから元のレイアウトに戻すと、これが壊れます。現在表示されているセルが zIndex をリッスンせず、他のセルの上に配置されているかのようです。セルを画面外にスクロールすると、正しい場所に戻ります。
objective-c - insertItemsAtIndexPaths更新エラー
UICollectionViewでperformBatchUpdates:completion、グリッドビューの更新を実行するために使用しようとしています。私のデータソース配列はself.resultsです。
これが私のコードです:
私が持っているもの/私がしていることの説明:
このコードは、コレクションビューへの最初の挿入が完了すると正常に実行されます。ただし、コレクションビューにデータを追加/挿入すると(self.resultsこれを更新して呼び出すことにより)、次のエラーが発生します。
*キャッチされなかった例外によるアプリの終了'NSInternalInconsistencyException'、理由:'無効な更新:セクション0のアイテムの数が無効です。更新後の既存のセクションに含まれるアイテムの数(8)は、に含まれるアイテムの数と同じである必要があります更新前のそのセクション(4)、プラスまたはマイナスそのセクションから挿入または削除されたアイテムの数(32挿入、0削除)およびプラスまたはマイナスそのセクションに移動または移動されたアイテムの数(0移動、0引っ越した)。'
これは、データソースが適切に更新されなかったことを意味することを理解しています。ただし、self.results配列をクエリすると、データの新しいカウントが表示されます。を使用して最初の行でそれを行っていaddObjectsFromArrayます。古い結果のサイズもに保存しましたresultsSize。その変数を使用して、新しく追加されたインデックスパスをに追加しますarrayWithIndexPaths。
アイテムを追加/挿入するときに、次のforループを試しました。
for (id obj in self.results)これが私が今使っているものです。最初は機能しますが、さらにクラッシュが挿入されます。
for (UIImage *image in newData)最初は同様に機能しますが、さらにインサートがクラッシュします。
関数の名前から、insertItemsAtIndexPathsループなしでそれらのインデックスパスにすべてのアイテムを挿入すると思います。ただし、ループがないと、アプリは最初にデータを入力しようとしたときにクラッシュします。
resultsSize + 1また、新しいカウント(新しいデータを含む)までループしようとしself.resultsましたが、これも最初の更新時にクラッシュします。
私が間違っていることについて何か提案はありますか?
ありがとうございました、