0

ストーリーボードを使用したiPadアプリがあります。上半分に追加のUIView(描画する)と下半分にUIScrollViewがあるUIViewを持つシーンが1つあります(それらを別々にキープする必要がありました)。別のSOの質問からコピーしたこのコードでUIViewに対処する方法を理解するのに苦労しています:

CGFloat scrollViewHeight = 0.0f;
for (UIView* view in scrollView.subviews)
{
   scrollViewHeight += view.frame.size.height;
}

[scrollView setContentSize:(CGSizeMake(320, scrollViewHeight))];

上記のコードの読み方では、UIViewを使用することになっていますが、UIViewが「シーン/ウィンドウ」全体をカバーしているため、それは意味がありません。UIScrollViewを使用してContentSizeを計算する方が理にかなっています。

それで、私は何を使うことになっていますか?

4

1 に答える 1

2

あなたが何を求めているのか完全には明確ではありません。タグ、プロパティ、またはその他の方法でスクロールビューへの参照を取得したら、コンテンツサイズを、すべてのコンテンツを組み合わせた幅と高さに設定する必要があります(オーバーラップなどを考慮)。元。スクロールビュー内に600x900ポイントの単一の画像ビューがある場合、そのサイズを600 x900CGSizeに設定します。

for...inこれは、ループ(高速列挙)を使用してスクロールビューのすべてのサブビューを通過し、それらの高さを合計して、それをコンテンツの高さとして使用します。これは、すべてのサブビューが互いに完全に垂直に積み重ねられていることを前提としているため、これを行うのに適した方法ではないと思います。基本的には、「スクロールビューのすべてのサブビューについて、その高さをこの合計に追加し、それをコンテンツサイズの高さとして使用します」ということです。

スクロールビューを管理する最も簡単な方法は、すべてのコンテンツを1つのUIViewにスラップし、それをスクロールビューに配置してから、スクロールビューのコンテンツサイズをUIViewのフレームに設定することです。スクロールビューに含まれるUIViewへの参照が必要な場合は、それをプロパティに設定するか、タグを付けてを使用できますviewWithTag

于 2012-11-08T21:28:35.703 に答える