カスタム レイアウトの UICollectionView があり、装飾ビューを表示しようとしています。
いくつかのコードで示された問題:
attributeDecorationTime.frame = CGRectMake(0.0f,
0.0f,
[self getXOffset],
(epgCollectionView.bounds.size.height+epgCollectionView.contentOffset.y));
このコードは、[self getXOffest] 値が画面の中央にある場合、画面を 2 つに分割する装飾ビューを表示することになっています。左側は装飾ビューで、右側には装飾ビューによって隠されていない半分のコレクション ビューが表示されます。
iPhoneシミュレーターでは、最初は期待どおりに動作していますが、少し下にスクロールし始めると、装飾ビューの下部が表示されます。装飾ビューの下部を表示したくありません。装飾ビューは常に画面の高さをカバーする必要があります。
私がepgCollectionView.contentOffset.y * 2を作成すると、うまくいくように見えます.おそらく網膜スクリーンに関連していますか?しかし、それが網膜@2xピクセルの問題である場合、なぜそれが画面を覆うのですか???
今、このコードを使用すると:
attributeDecorationTime.frame = CGRectMake(0.0f,
epgCollectionView.contentOffset.y,
[self getNowXOffset],
(epgCollectionView.bounds.size.height+epgCollectionView.contentOffset.y));
コレクションビューを下にスクロールすると、装飾ビューが下にスクロールします。
それが何を意味するのかを正しく理解すると、装飾ビューは通常のセルまたはヘッダーセルと同じ xy を使用しません。
ここで、ipad シミュレーターで最初のコードを実行すると、y=0 にあるはずの装飾ビューが、メイン ビュー コントローラーのコレクション ビューの y 位置である y=74 から開始されます。
誰かが私が間違っていることを説明できますか???
iphone/ipadの画面の高さ全体をカバーする装飾ビューが欲しいだけです。
一方で、装飾ビューの幅である x 値に問題はありません。これは、属性を変更するときにビューを無効にする必要があると思いますか? カスタム レイアウトは、スクロールごとに属性を再計算します。また、カスタム レイアウトの [self invalidateLayout] は何も変更されていないようです。