問題タブ [uicollectionviewlayout]

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 に答える
2880 参照

objective-c - あるUICollectionViewLayoutから別のUICollectionViewLayoutに切り替えるときのカスタムアニメーション?

テストとして、セルを縦に並べて表示するレイアウトと、横に並べて表示するレイアウトを作成しました。私が呼び出す[collectionView setCollectionViewLayout:layout animated:YES];と、2 つの位置の間で非常にきれいにアニメーション化されます。

私がやりたいは、最終的に目的地に到着する前に、すべてのビューに画面の周りでいくつかのスピン、ワープ、フリップを実行させることです (おそらく CAKeyframeAnimations を使用)。

UICollectionViewLayoutAttributesアニメーション プロパティを含むようにサブクラス化してから、使用している のオーバーライドされたapplyLayoutAttributes:メソッドでそれらのアニメーションを設定しようとしましたUICollectionViewCell。これは機能します...ただし、レイアウトの移行が完了した後にのみ発生するようです。これを使用したい場合は、オブジェクトの現在の位置をすぐに変更しないようにレイアウトを設定する必要があります。これは、コードのこの適用属性部分に到達した後でのみです。これは大変な作業のように思えます...

または、 をサブクラス化UICollectionViewしてオーバーライドすることもできますsetCollectionViewLayout:animated:が、それはレイアウト間で保持する必要がある多くの状態のようにも思えます。レイアウトのセルの追加/削除をアニメーション化する簡単な方法あるため、これらのオプションはどちらも正しくないようです。レイアウト のアニメーションにフックするために似たようなものがあるべきだと思います。

私が達成しようとしていることを達成するための最良の方法を知っている人はいますか?

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

ios - ストーリーボードよりも高くレンダリングされた UICollectionView

ストーリーボード (iPad) に UICollectionView があります。私はプログラムでプロパティ (マージン、サイズなど) を設定していません。私のデリゲートは必須メソッド (セクション数とアイテム数、cellForItemAtIndexPath) のみを実装しています。水平スクロール (1 行) の標準的なフロー レイアウトを使用しており、上下のインセットはありません。私はカスタムセルクラスを持っていますが、これもまた特別なことではありません (いくつかのラベルと imageView の IBOutlets だけです)。私のセルは100x100pxです。collectionView の高さは 100px に設定されており、IB ではそのように表示されます。

属性インスペクター サイズインスペクター

ただし、アプリを実行すると、コレクションビューが高さ 140 ピクセル (セルの上下に 20 ピクセルのマージン) としてレンダリングされます。すべてのプロパティ (最小間隔を含む) のさまざまな値を試しましたが、ビューを短くすることはできませんでした。インセットを変更することによってのみ、ビューを高くすることができます。

これはバグですか、それとも回避できないいくつかのロジックがありませんか? たとえば、標準レイアウトでは、コンテンツの上下に最小限のスペースが強制的に含まれますか?

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

uicollectionview - セルの数に基づいて UICollectionView のサイズを変更する

1 UICollection~ 4 個のセルを含むビューがあり、その下UITextFieldはその下に制限されています。

のサイズを変更できるようにしたいUICollectionViewので、1 つまたは 2 つのセルがある場合、の高さUICollectionViewはこの高さです。それ以外の場合、3 つまたは 4 つのセルがある場合、高さは 2 * セルの高さ + 垂直方向の間隔です。

すべての数学なしでこれを行う簡単な方法はありますか? 制約システムがあるのに、 a のサイズを決めるためにこの面倒な計算をしなければならないのは奇妙に思えますUIView

いつもありがとう

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

objective-c - UICollectionViewFlowLayout の使用時に UICollectionViewCell の境界外に描画する

UICollectionViewCellセルが境界にクリッピングすることなく、境界の外側に描画できた人はいますか? (水平)を使用するバニラコレクションビューがあり、によって提供されるレイアウトを中断することなくUICollectionViewFlowLayout、の境界外にパスを描画できるようにしたいと考えています。に設定してもうまくいかないようです。UICollectionViewCellUICollectionViewFlowLayoutclipsToBoundsNO

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

objective-c - ストーリーボードで UICollectionViewFlowLayout をサブクラス化する方法

Storyboard で UICollectionView を使用していて、UICollectionViewFlowLayout をサブクラス化しようとしていますが、うまくいかないようです。

サブクラスを作成しましたCollectionViewFlowLayout

Storyboard の Identity Inspector で、フロー レイアウトのクラスを変更しました。

ストーリーボードのアイデンティティ インスペクター

しかし、保存/ビルド/実行すると、itemSize が 250 に設定されず、NSLog が出力されません。

このような例では、collectionView コントローラーでレイアウトを設定できることを見てきましたが、ストーリーボードで設定する場合は必要ないと思いました。

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

iphone - カスタムUICollectionViewレイアウト

実装する必要のあるUICollectionViewレイアウトには、垂直方向に上下に3つのセクションがあり、各セクションは水平方向にスクロール可能です。

セクション1:1 2 3 45.............。

セクション2:1 2 3 45.............。

セクション3:1 2 3 45.............。

UICollectionViewにはscrollViewが1つしかないため、すべてのセクションは一度にスクロールしますが、一度に1つはスクロールしません。したがって、カスタムレイアウトはこの状況では役に立たないと思います。これの他の可能な実装に光を当ててください。

ありがとうございました。

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

ios - UIWebView のサイズに問題がある UICollectionView

を実装する必要がありUICollectionViewます。私が使用する細胞は、UIWebViewsそれらの中にあります。主な問題は、セルのサイズを webViews 内の実際のコンテンツに合わせたいことです。

次の2つの方法を使用しました。

問題はもちろん、webView がロードされた後にのみそのサイズを認識していることです。

UICollectionViewLayoutwebview がそのコンテンツをロードした後にのみ、特定のセルのサイズを調整することは何とか可能ですか?

私が見つけたすべての例は、サイズが固定されているか、コンテンツに合わせてサイズが計算されるまで時間がかかる webViews を使用していませんでした。

これを達成する方法はありますか?

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

ios - UICollectionViewFlowLayout の奇妙な動作

画像の水平線を表示するために UICollectionView とともに UICollectionViewFlowLayout を使用しています。

アイデアは次のようなものです(3セルのサンプル):

しかし、私は次のようなものを得ています

スクロール後、cell3 は右の位置に移動します。

iPad (横向き) では、セルのサイズは (480,640) で、UIEdgeInsets は (150,150,150,150) です。

何が起こっているのかわかりません。