2

垂直に配置された多数の UIButtons を含む UIScrollView クラスを使用して、ウィンドウにスクロールコントローラーを生成しようとしています。スクロール ビューのサイズを現在のビュー コントローラーのルート ビューと同じに設定して、スクロール ビューが表示されているウィンドウ全体をカバーするようにします。次に、スクロール ビューに追加する UIButton を生成します。各 UIButton を前の UIButton のすぐ下に追加し、現在の UIButton の高さを「totalContentHeight」という変数に追加します。最後に、次のコード行で、スクロール ビューの contentSize の高さをこの値に設定します。

self.scrollViewForNewsButtons.contentSize = CGSizeMake(self.view.frame.size.width, totalContentHeight);

すべてのボタンをスクロール ビューに追加した後、totalContentHeight は numOfButtons*eachButtonsHeight と等しくなります。

問題は、シミュレーターでアプリを実行し、最後のボタンの最後までスクロールしてマウスを離すと、最後の 2 つのボタンが跳ね返って、表示されているウィンドウの外に出ることです。言葉だけで表現するのは少し難しいので、以下にイメージを示します。

1)これは、コンテンツの最後までスクロールし、プッシュ可能な最後の位置にコンテンツを保持したときに得られるものです。

スクロールした写真

2)これは、マウスを離してスクロール ビューを最終位置に戻した後の結果です。

スクロールされていない写真

ご覧のとおり、最後の 2 つのボタンは表示領域の外に描かれています。スクロール ビューの領域が、ウィンドウ全体と IPhone のボタン領域をカバーしているようなものです。これについての合理的な説明が見つかりませんでした。領域サイズを間違って設定していますか、それとも他に何か不足していますか?

4

2 に答える 2

4

合計ボタンとその高さを計算してコンテンツサイズを設定するだけです...例:

float yheight = totalButton * yourButtonHeight;
[yourScrollView setContentSize:CGSizeMake(320, yheight + 44)];

このコードを試してください...

于 2012-12-21T10:15:00.923 に答える
0

そして、スクロールビューのフレームサイズを同じに設定した場合

self.view.bounds
于 2012-12-21T10:11:51.717 に答える