2

動的変数を使用して設定した場合、スクロールビューはコンテンツサイズを設定しませんでした

scrollView.contentSize=CGSizeMake(320,scrollView.frame.origin.y+120);

上記のメソッドを呼び出した後、スクロール ビューのサイズは変わりません。

しかし、数値(整数または浮動小数)を使用して設定すると、変更されますが、スクロールに非常に奇妙な影響を与えます。効果の写真を添付し​​ます。

scrollView.contentSize=CGSizeMake(320,1000);

とにかく奇妙な効果が現れるので、これは画像を投稿することを許可していません。

どうすればそれを取り除くことができますか?

何がうまくいかないのか、何が欠けているのか教えてください。

今、私は11までランク付けしました。効果のイメージはここにあります。

コンテンツのサイズを大きくする前に: ここに画像の説明を入力

スクロール時にコンテンツ サイズを大きくすると、次のような効果が現れます。 ここに画像の説明を入力

4

4 に答える 4

0

目標を達成するにはframe.heightを使用する必要があると思います

コンテンツサイズは、スクロール用のスクロールビューのフレームサイズよりも大きくする必要があります

スクロールビューのy原点を使用しているので、それが問題である可能性があります。

scrollView.contentSize=CGSizeMake(320,scrollView.frame.size.height+120);
于 2012-11-08T08:22:27.733 に答える
0

Select the Scroll View and view its Size Inspector window. Observe that its size is 320 , 713 points (in my case). If you do not see the same size as what I have, this is a good time to adjust the size so that it is the same as mine. You will need to use this value in your code

(void)viewDidLoad {
scrollView.frame = CGRectMake(0, 0, 320, 460);
[scrollView setContentSize:CGSizeMake(320, 713)];
 [super viewDidLoad];
}
于 2012-11-08T08:15:49.407 に答える
0

ついに.......

この問題は、スクロール ビューで、スクロール中に画面に表示されるスクロール ビュー インジケーターの幅が増加することでした。これを取り除くには 2 つのオプションがあります。

  1. 問題を引き起こしている垂直または水平インジケーターを無効にしますが、これにより、最後のセルが表示されないという問題が発生した場合、スクロールビューのコンテンツサイズに問題が発生する可能性があります。

2.次のコード スニペットを使用して、表示させますが、画面からはみ出させます。

    [myScrollView setScrollIndicatorInsets:UIEdgeInsetsMake(0.0, 0.0, 0, 320.0)];

これは完全に機能していますが、スクロール インジケーターが画面からはみ出しています。

于 2012-11-08T09:59:47.710 に答える
0

この行で:

scrollView.contentSize=CGSizeMake(320,scrollView.frame.origin.y+120);

スクロール ビューの contentsize の高さを に設定していますscrollView.frame.origin.y+120。つまり、スクロール ビューのフレームが x=40、y=40、幅 = 500、高さ = 500 の場合、scrollView.frame.origin.y+120 は 40 + 120 = 160 に等しくなります。スクロールビューの高さ。したがって、スクロール ビューは上下にスクロールしません。

2 行目:

scrollView.contentSize=CGSizeMake(320,1000);

あなたはスクロールビューのコンテンツサイズの高さを1000にしています。これはスクロールビューの高さよりも大きいため、上下にスクロールします。

于 2012-11-08T08:27:39.430 に答える