問題タブ [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.

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

xcode - uicollectionviewcell が選択されない

私のアプリは、2 つのビュー コントローラーを埋め込んだカスタム ビュー コントローラーを含むナビゲーション コントローラーに基づいています。最初のものは、IB を介してセルを設計した UICollectionViewController です。セルにはイメージビューとラベルが含まれています。実行時に、アプリはすべてのセルを画像と関連するラベルとともに正しく表示しますが、それらに触れたときに DidSelect イベントをトリガーするのはそれらの一部だけです。画面上のセルの位置を変更して、IB 内のスペース間設定を変更しようとしました。このようにして、以前は「非感受性」だったセルの一部が現在は感受性であり、その逆も同様です。また、画像とラベルの両方がユーザーインタラクティブであることも確認しました。

助言がありますか?どうもありがとう

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

ios - UICollectionViewFlowLayout のサブクラスを使用して uicollectinviewcellls を表示する

UICollectionViewFlowLayoutをサブクラス化することにより、定義されたポイント(コアデータに保存されている)にセルを表示しようとしています。このコードは、オブジェクトを追加し、すでにコレクションビューを表示しているときに定義されたポイントにセルを表示しますが、コレクションビューが読み込まれたり更新されたりするとオブジェクトは表示されません。カスタムUICollectionViewFlowLayoutでself.collectionView.collectionViewLayoutに接続しましたが、それを参照するのは、その座標を含むオブジェクトを渡すときにcellforitematindexpathにあるときだけです。私は何を逃したのですか?

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

ios - NSNotification による UICollectionView からのセルの削除

シンプルなUICollectionViewベースのアプリがあります.1つのUICollectionViewとNSMutableArrayベースのデータモデルです。

didSelectItemAtIndexPath: デリゲート メソッドを使用して問題なくセルを削除できます。

UIMenuControllerただし、 a を介してトリガーされるUICollectionViewCellサブクラスの a を介して削除オプションを追加しようとしていますが、UILongPressGestureRecognizerこれはすべて正常に機能し、 a を正常にトリガーしますNSNotification

ViewController でそれをキャッチし、次のメソッドを呼び出します。

そして、deleteItemsAtIndexPaths: 呼び出しでクラッシュします。

NSNotification のオブジェクトや indexPathForCell: 呼び出しから作成された indexPath など、明らかなことはすべて確認しましたが、すべて問題ないようです。どちらも同じ情報で deleteItemsAtIndexPath: を呼び出しているようですが、なぜか通知ルートを経由すると失敗します。

これは、エラーで指定されたアドレスの情報です。

おそらく、更新後のインデックス パスが null であることは重要です...

何か案は?

0 投票する
4 に答える
86190 参照

ios - UICollectionViewDelegateFlowLayout を設定するには?

UIViewController は、UICollectionView への参照を維持します。コントローラーは、UICollectionViewDelegateFlowLayout を使用して組み込みのフロー レイアウトを変更する必要があります。

ビューのデータ ソースを自分自身に設定するのは非常に簡単です。

MyViewController.m

しかし、コントローラーをビューのデリゲート フロー レイアウトに設定するにはどうすればよいでしょうか?

私はもう試した:

しかし、「互換性のないポインター型の割り当て...」というエラーが表示されます。

コレクション ヘッダー ファイルは次のようになります。

MyViewController.h

0 投票する
12 に答える
45393 参照

ios - UICollectionView flowLayout がセルを正しくラップしない

私はUICollectionViewFLowLayout を持っています。ほとんどの場合、期待どおりに動作しますが、セルの 1 つが適切にラップされないことがあります。たとえば、3 行目の最初の「列」にあるセルは、実際には 2 行目の末尾にあり、あるべき場所に空のスペースがあるだけです (下の図を参照)。このルージュ セルは左側しか見えず (残りは切り取られています)、本来あるべき場所は空になっています。

これは常に発生するわけではありません。必ずしも同じ行ではありません。それが発生したら、上にスクロールしてから戻ることができ、セルは自動的に修正されます。または、セルを押して (プッシュで次のビューに移動します)、ポップバックすると、セルが間違った位置に表示され、正しい位置にジャンプします。

スクロール速度により、問題の再現が容易になるようです。ゆっくりスクロールすると、セルが時々間違った位置に表示されることがありますが、すぐに正しい位置にジャンプします。

セクションインセットを追加したときに問題が発生しました。以前は、セルがコレクションの境界に対してほぼフラッシュしていました (インセットがほとんど、またはまったくない) が、問題に気づきませんでした。しかし、これはコレクション ビューの左右が空であることを意味していました。つまり、スクロールできませんでした。また、スクロール バーが右に揃っていませんでした。

シミュレーターと iPad 3 の両方で問題を発生させることができます。

左右のセクションのインセットが原因で問題が発生していると思います...しかし、値が間違っている場合、動作が一貫していると予想されます。これは Apple のバグなのだろうか?あるいは、これはインセットの蓄積または類似の原因によるものかもしれません。

問題と設定の図


フォローアップ:以下のニックによるこの回答を 2 年以上問題なく使用しています (その回答に穴があるかどうか疑問に思っている場合に備えて、まだ見つかっていません)。よくやったニック。

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

ios - UICollectionView - Photos.app の機能を複製する

iPad の photos.app のように動作する UICollectionView を作成しようとしています (ピンチしてグループ化し、展開します)。

photos.app はどのように構築されていると思いますか?

  • 1 つのレイアウトを持つ 1 つの UICollectionView で、ピンチはバッチ更新を行い、セルをセクションに移動するだけですか?
  • それとも、2 つの異なるレイアウトを持つ 1 つの UICollectionView ですか?
  • または最後のオプションは、2 つの UICollectionView でしょうか?

最善のアプローチは何だと思いますか?

ありがとう

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

ios6 - デフォルトの UICollectionViewCell 削除アニメーションの置き換え

UICollectionViewFlowLayout インスタンスによってレイアウトが管理されるコレクション ビューがあります。コレクション ビューに長押しジェスチャ レコグナイザーが接続されています。そのジョブは、コレクション ビュー内のセルの 1 つの境界内で長押しが発生したかどうかを検出し、そうであれば、セルの変換をアニメーションで変更した後にそのセルを削除します。

これは、ジェスチャ認識エンジンによって実行されるアクションの関連部分です。

問題は、削除メソッドがセルに対して独自のプロパティ変更/アニメーションを実行しているように見えることです。これは、私のアニメーションではうまくゲル化しません。たとえば、ここで達成しようとしている効果では、セルが垂直方向に完全に押しつぶされたら、ビューに再び表示されないようにしたいのですが、deleteItemsAtIndexPaths: 呼び出しにより、セルの「ゴースト」が表示されます。メソッドが独自の変換と不透明度のアニメーションを実行すると、フェードアウトします。

私はそれに完全に間違っていますか?おそらく、コレクションビューアーキテクチャは、セルを明示的にアニメーション化してから、私が試みているように削除するよりも、私が望むことを行うためのより良い方法を提供しますか?

ドキュメントを深く掘り下げるのではなく、ここで簡単な回答が得られることを願っています。

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

ios5 - InterfaceBuilderファイルの不明なクラス[ACollectionViewController]

iOS 5.1.1iPad第1世代でiOS6プログラムを実行したいUICollectionViewのですが、すべてが消えてデバッグコンソールに表示されます

UICollectionViewiOS 5のsとの非互換性が原因ですか?

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

ios6 - 奇妙な UICollectionView の向きの遷移

コレクション ビューを使用して、iPad アプリで写真を表示しています。セルは のサブクラスですUICollectionViewCell。セルは自動レイアウトを使用しており、すべての側面からスペースが固定されています。

向きが変わると、最初は細胞が非常に小さくなります。その後、適切なサイズにリサイズされます。しかし、同じサイズを維持できるはずですが、このように本当に醜いです。

この問題について何か考えはありますか?

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

objective-c - UIImagePickerControllerおよびCollectionViewController/ Cell

CollectionViewControllerとCollectionViewCellがあります。データベースからデータをフェッチしているので、コントローラーがロードされると、対応するセルが動的に作成されます。

すべてのセルにはUIButtonとUITextViewがあります。UIButtonを使用して、画像を表示したり(データベースに存在する場合)、画像をキャプチャしたりしています(押されている場合)。

ここまでは順調ですね。アプリを起動します。コレクションビューコントローラは、データベースからの結果に応じて、セルを自動的に入力します。

画像フィールドに画像がある場合は、カスタムimageButtonのimageプロパティに「check.png」が読み込まれます。

画像フィールドに画像がない場合、imageButtonのTouchUpInsideアクションはメソッド'useCamera'に設定されます。

今、私がフォローしているチュートリアルによると、次のコードを実装する必要があります。

私が見つけたほとんどの例では、ImageViewとImagePickerControllerは同じViewController内に作成されています。したがって、ImageView(または私の場合はボタン)のimageプロパティに簡単にアクセスできます。

私の問題は、「IBOutlet UIButton imageButton」が、InboundCollectionViewControllerではなくInboundCollectionViewCell内にあることです。そのため、カメラから返された画像をボタンのimageプロパティに渡す方法が見つかりません。

私はObjectiveCとXcodeの両方に非常に慣れていないことに注意してください。これは、私の最初のプロジェクトです。:P :)

前もって感謝します!