Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 容器视图中的UIScrollView具有不正确的帧大小_Ios_Xamarin.ios_Uikit_Xamarin - Fatal编程技术网

Ios 容器视图中的UIScrollView具有不正确的帧大小

Ios 容器视图中的UIScrollView具有不正确的帧大小,ios,xamarin.ios,uikit,xamarin,Ios,Xamarin.ios,Uikit,Xamarin,我有一个UIContainerView,其中Frame={X=20,Y=88,Width=728,Height=660}和一个嵌入其中的UIScrollView UIScrollView报告Frame={X=0,Y=0,Width=768,Height=960},这会在分页UIScrollView时导致宽度偏移40(黄金部分)。它导致以下输出向左翻页一次: 但是,ContentSizeForViewInPopover报告预期的帧大小={Width=728,Height=660}。如何更正UIS

我有一个UIContainerView,其中Frame={X=20,Y=88,Width=728,Height=660}和一个嵌入其中的UIScrollView

UIScrollView报告Frame={X=0,Y=0,Width=768,Height=960},这会在分页UIScrollView时导致宽度偏移40(黄金部分)。它导致以下输出向左翻页一次:

但是,ContentSizeForViewInPopover报告预期的帧大小={Width=728,Height=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);
var pages=PageControl.pages=2;
WriteLine(“ScrollView框架:{0}”,ScrollView.Frame);
对于(int i=0;i
再次检查父视图
UIViewController
下的
IB
属性检查器布局部分下的“调整滚动视图插入”是否未选中。我遇到了一个类似的问题,让我有一段时间被绊倒了,这就是我需要做的所有事情,以获得正确的布局。

在IOS 7.0中
使用self.automaticallyAdjustsScrollViewInsets=NO;在ViewDidLoad中,尝试在代码中创建UIScrollView,显然设计器会覆盖您在代码中应用的任何调整。

调用[self.ScrollView layoutifneed];在这条线之前

frame.X = ScrollView.Frame.Width * i; // expected {728 * i} but is {768 * i}

它与我一起工作,goodluck

您的代码中在哪里创建了UIScrollView?您必须将其框架(而不是ContentSize!)设置为superview的边界,并为其提供适当的自动调整大小设置。UIScrollView设置在UIView上,该UIView位于故事板上的UIContainerView中。未显式创建UIScrollView。