2

Frame = {X=20,Y=88,Width=728,Height=660} の UIContainerView と、その中に埋め込まれた UIScrollView があります。

UIScrollView は Frame = {X=0,Y=0,Width=768,Height=960} を報告し、UIScrollView のページング時に幅のオフセットが 40 (金色のセクション) になります。左に1回ページングされた次の出力が得られます。

ここに画像の説明を入力

ただし、ContentSizeForViewInPopover は、予想されるフレーム サイズ = {幅 = 728、高さ = 660} を報告します。UIScrollView フレームを正しいサイズに修正するにはどうすればよいですか?

埋め込み UIViewController の ViewDidLoad() のコードは次のとおりです。

var pages = PageControl.Pages = 2;
Console.WriteLine("ScrollView Frame: {0}", ScrollView.Frame);

for(int i = 0; i < pages; i++)
{
    RectangleF frame
    frame.X = ScrollView.Frame.Width * i; // expected {728 * i} but is {768 * i}
    frame.Y = 0;
    frame.Size = ScrollView.Frame.Size;

    Console.WriteLine("Subview frame: {0}", frame);

    ScrollView.AddSubview(
        new UIView(frame) { 
            Bounds = frame,
            BackgroundColor = GetRandomColor() 
        });
    }

    ScrollView.ContentSize = new SizeF(ScrollView.Frame.Width * pages, ScrollView.Frame.Height);
    Console.WriteLine("ScrollView ContentSize = {0}", ScrollView.ContentSize);
4

4 に答える 4

2

IBUIViewControllerの下で、[属性インスペクター] の [レイアウト] セクションで、[スクロール ビューのインセットの調整] がオフになっていることを再確認します。しばらくつまずいた同様の問題がありましたが、適切なレイアウトを得るために必要なことはそれだけでした。

于 2013-10-01T12:22:56.663 に答える
0

IOS 7.0 では、self.automaticallyAdjustsScrollViewInsets=NO; を使用します。ViewDidLoadで

于 2014-03-25T10:43:08.530 に答える
-3

コードで UIScrollView を作成してみてください。明らかに、デザイナーはコードで適用した調整をオーバーライドします。

于 2015-03-02T08:53:09.807 に答える