問題タブ [uicollectionviewdelegate]

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

ios - カスタム コレクション ビュー

ストーリーボードを使用してカスタム コレクション ビューを実装しました。十字ボタンと背景画像を追加しました。

コレクション ビューをリロードすると、クロス ボタンが管理者には非表示になり、他のメンバーには表示されますが、これは初めて完全に機能します。

タグ btn.tag = indexpath.row を設定し、ユーザーを削除する機能を割り当てました。

ユーザーを削除し、コレクション ビューをリロードするときにオブジェクトを配列から削除した後、管理者がボタンを非表示にするために追加した条件が機能せず、コレクション ビューのすべてのセルにクロス ボタンが表示されます。

誰か助けてください。

コレクション ビューの結果を初めてリロードする

ここに画像の説明を入力

コレクションビューの結果をリロードするメンバーの削除後 ここに画像の説明を入力

[削除] ボタンを押した後のデバッグ ログですが、管理項目の画像にクロスが表示されるようになりました。

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

ios - didSelectItemAtIndexPath: で cellForItemAtIndexPath: が呼び出された場合の問題点

メソッドを呼び出しcellForItemAtIndexPath:ましたdidSelectItemAtIndexPath:。その結果、didSelectItemAtIndexPath:セルごとに 1 回だけ呼び出されました。したがって、セルを初めてタップしてから別のセルをタップできますが、最初のセルをもう一度タップすると、didSelectItemAtIndexPathもう呼び出されません (ただし、他のすべての「新しい」セル)。

今は電話をかけcellForItemAtIndexPath:なくなりdidSelectItemAtIndexPath:、期待どおりに機能するようになりました。しかし、なぜ私はこれを行うことが許可されていないのですか? これには何か理由がありますか?

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

ios - UICollectionView サブクラスでデリゲート メソッド呼び出しをインターセプトすることは可能ですか?

UICollectionView と UICollectionFlowLayout をサブクラス化して、単一行のカルーセル ビューを実装しています。ビジュアルは次のようになります。 ここに画像の説明を入力

中央のセルでのみタッチを有効にし、残りを無効にしたい。現在、次のように有効化/無効化ロジックをデリゲート クラスに入れています。

このロジックを UICollectionView サブクラスに移動したいと思います。では、UICollectionView サブクラスでデリゲート呼び出しをインターセプトし、上記のロジックを追加する方法はありますか?

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

ios - デリゲートで設定された UICollectionView headerReferenceSize が正しく機能しない

headerReferenceSizeカスタムでを使用しようとしていますUICollectionViewFlowLayout

collectionView:layout:referenceSizeForHeaderInSection:collectionViewデリゲートにメソッドを設定しました:

これは、ビューが読み込まれるときに 1 回呼び出されます。ただし、カスタム UICollectionViewFlowLayout は、デリゲートからではなく、ストーリーボードで設定されたサイズを取得し続けます。どうしてこれなの?

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

ios - UIPageViewController での UICollectionView のプリロード

の中で使用しUICollectionViewていUIPageViewControllerます。
各ページは、 の同じサブクラスのインスタンスですUICollectionViewController。以前に見たことのないページを表示するためにページ スワイプを行うと、UICollectionViewすべてのデリゲート/データソース メソッドを通過するのに時間がかかるため、アニメーションの開始にわずかな遅延 (数ミリ秒) が発生します。そのため、ユーザーが実際にスワイプを開始する前に、ビューコントローラーをロードする事前キャッシュシステムを実装しようとしていました。
簡単に作成できますが、何らかの理由でreloadData、 non-visibleを呼び出すたびに、どのデリゲート メソッドも呼び出されViewControllerません。 これまでのところ、 , , and を使用してそれらを強制的に呼び出そうとしましたが、何も機能していません。 ではないUICollectionViewDelegateFlowLayout
setNeedsDisplaysetNeedsLayoutsetLayoutIfNeededinvalidateLayout
viewcontrollernil. ではviewありませんnil
何が原因か誰か知っていますか?ビューコントローラーがビューポートにないためですか?

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

ios - パフォーマンスを損なうことなくコレクションビューのレイアウトを強制する方法は?

これが私の問題です。画像ビューを持つ UICollectionViewCell があります。画像はリンクからダウンロードされます。画像のサイズが異なるため、collectionView セルのサイズを画像のサイズに合わせて変更したいと考えています。私は現在、内部のレイアウトを強制することでこれを達成しています

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath)

このコード行をその中に配置することによって

以下のUICollectionViewDelegate関数

セルのサイズ変更を処理しています。これは機能していますが、間違いなく効率的ではありません。collectionView のスクロールに時間がかかり、スムーズではないため、非効率的です。パフォーマンスを低下させずにセルのサイズを変更する方法はありますか?

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

ios - デフォルトで UICollectionView が UICollectionViewDelegateFlowLayout に準拠するのはなぜですか?

UICollectionViewControllerxib ファイルからインスタンス化されて実行される次のコードと混同しています。

これはプロトコルで宣言されていますUICollectionViewDelegateFlowLayoutUICollectionViewControllerただし、で宣言されているように、このプロトコルに準拠することを示す場所はどこにもありませんUICollectionViewController

とにかく、なぜUICollectionViewController準拠するのか説明できますUICollectionViewDelegateFlowLayoutか?

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

ios - UIScrollViewDelegate 呼び出しの転送の問題

奇妙な問題に遭遇しました。UICollectionView のレイアウトを処理するカスタム コンポサントがあります。そのコードは Swift で書かれています。

MyCustomCollectionViewHandlerただし、パーツからの他のすべてのデリゲート コールバック (特に UIScrollViewDelegate のもの)を処理したくありません。したがって、可能であればすべてのデリゲート呼び出しを手動で転送すると考えました。そのコードでそれを行います。

MyCustomCollectionViewHandlerそして、Objective-C クラスからmy を初期化します。

また、次のように、ここで UIScrollViewDelegate 呼び出しも実装します。

最後に、私の問題は次のとおりscrollViewDidScrollですviewForZoomingInScrollView

に実装scrollViewDidScrollするとMyCustomCollectionViewHandler、呼び出されます。

しかし、私はそれを ObjC 部分で呼び出したいと思っています。

私が何か間違ったことをしたかどうか誰かが見ることができますか? ありがとう ;-)