問題タブ [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.
ios - カスタム コレクション ビュー
ストーリーボードを使用してカスタム コレクション ビューを実装しました。十字ボタンと背景画像を追加しました。
コレクション ビューをリロードすると、クロス ボタンが管理者には非表示になり、他のメンバーには表示されますが、これは初めて完全に機能します。
タグ btn.tag = indexpath.row を設定し、ユーザーを削除する機能を割り当てました。
ユーザーを削除し、コレクション ビューをリロードするときにオブジェクトを配列から削除した後、管理者がボタンを非表示にするために追加した条件が機能せず、コレクション ビューのすべてのセルにクロス ボタンが表示されます。
誰か助けてください。
コレクション ビューの結果を初めてリロードする
[削除] ボタンを押した後のデバッグ ログですが、管理項目の画像にクロスが表示されるようになりました。
ios - didSelectItemAtIndexPath: で cellForItemAtIndexPath: が呼び出された場合の問題点
メソッドを呼び出しcellForItemAtIndexPath:
ましたdidSelectItemAtIndexPath:
。その結果、didSelectItemAtIndexPath:
セルごとに 1 回だけ呼び出されました。したがって、セルを初めてタップしてから別のセルをタップできますが、最初のセルをもう一度タップすると、didSelectItemAtIndexPath
もう呼び出されません (ただし、他のすべての「新しい」セル)。
今は電話をかけcellForItemAtIndexPath:
なくなりdidSelectItemAtIndexPath:
、期待どおりに機能するようになりました。しかし、なぜ私はこれを行うことが許可されていないのですか? これには何か理由がありますか?
ios - デリゲートで設定された UICollectionView headerReferenceSize が正しく機能しない
headerReferenceSize
カスタムでを使用しようとしていますUICollectionViewFlowLayout
。
collectionView:layout:referenceSizeForHeaderInSection:
collectionViewデリゲートにメソッドを設定しました:
これは、ビューが読み込まれるときに 1 回呼び出されます。ただし、カスタム UICollectionViewFlowLayout は、デリゲートからではなく、ストーリーボードで設定されたサイズを取得し続けます。どうしてこれなの?
ios - UIPageViewController での UICollectionView のプリロード
の中で使用しUICollectionView
ていUIPageViewController
ます。
各ページは、 の同じサブクラスのインスタンスですUICollectionViewController
。以前に見たことのないページを表示するためにページ スワイプを行うと、UICollectionView
すべてのデリゲート/データソース メソッドを通過するのに時間がかかるため、アニメーションの開始にわずかな遅延 (数ミリ秒) が発生します。そのため、ユーザーが実際にスワイプを開始する前に、ビューコントローラーをロードする事前キャッシュシステムを実装しようとしていました。
簡単に作成できますが、何らかの理由でreloadData
、 non-visibleを呼び出すたびに、どのデリゲート メソッドも呼び出されViewController
ません。
これまでのところ、 , , and を使用してそれらを強制的に呼び出そうとしましたが、何も機能していません。
ではないUICollectionViewDelegateFlowLayout
setNeedsDisplay
setNeedsLayout
setLayoutIfNeeded
invalidateLayout
viewcontroller
nil
. ではview
ありませんnil
。
何が原因か誰か知っていますか?ビューコントローラーがビューポートにないためですか?
ios - パフォーマンスを損なうことなくコレクションビューのレイアウトを強制する方法は?
これが私の問題です。画像ビューを持つ UICollectionViewCell があります。画像はリンクからダウンロードされます。画像のサイズが異なるため、collectionView セルのサイズを画像のサイズに合わせて変更したいと考えています。私は現在、内部のレイアウトを強制することでこれを達成しています
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath)
このコード行をその中に配置することによって
以下のUICollectionViewDelegate
関数
セルのサイズ変更を処理しています。これは機能していますが、間違いなく効率的ではありません。collectionView のスクロールに時間がかかり、スムーズではないため、非効率的です。パフォーマンスを低下させずにセルのサイズを変更する方法はありますか?
ios - デフォルトで UICollectionView が UICollectionViewDelegateFlowLayout に準拠するのはなぜですか?
UICollectionViewController
xib ファイルからインスタンス化されて実行される次のコードと混同しています。
これはプロトコルで宣言されていますUICollectionViewDelegateFlowLayout
。UICollectionViewController
ただし、で宣言されているように、このプロトコルに準拠することを示す場所はどこにもありませんUICollectionViewController
。
とにかく、なぜUICollectionViewController
準拠するのか説明できますUICollectionViewDelegateFlowLayout
か?
ios - UIScrollViewDelegate 呼び出しの転送の問題
奇妙な問題に遭遇しました。UICollectionView のレイアウトを処理するカスタム コンポサントがあります。そのコードは Swift で書かれています。
MyCustomCollectionViewHandler
ただし、パーツからの他のすべてのデリゲート コールバック (特に UIScrollViewDelegate のもの)を処理したくありません。したがって、可能であればすべてのデリゲート呼び出しを手動で転送すると考えました。そのコードでそれを行います。
MyCustomCollectionViewHandler
そして、Objective-C クラスからmy を初期化します。
また、次のように、ここで UIScrollViewDelegate 呼び出しも実装します。
最後に、私の問題は次のとおりscrollViewDidScroll
ですviewForZoomingInScrollView
。
に実装scrollViewDidScroll
するとMyCustomCollectionViewHandler
、呼び出されます。
しかし、私はそれを ObjC 部分で呼び出したいと思っています。
私が何か間違ったことをしたかどうか誰かが見ることができますか? ありがとう ;-)