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

时间:2013-05-25 18:40:40

标签: 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(黄金中的部分)。它导致以下输出向左翻页一次:

enter image description here

但是,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 个答案:

答案 0 :(得分:3)

调用[self.ScrollView layoutIfNeeded];在这一行之前

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

它适用于我,goodluck

答案 1 :(得分:2)

在“{1}}下的IB下,在”属性检查器,布局“部分下,检查”调整滚动视图插件“是否取消选中。我有一个类似的问题,让我绊倒了一段时间,这就是我需要做的就是获得正确的布局。

答案 2 :(得分:0)

在IOS 7.0中 使用self.automaticallyAdjustsScrollViewInsets = NO;在ViewDidLoad中

答案 3 :(得分:-2)

尝试在代码中创建UIScrollView,显然设计师会覆盖您在代码中应用的任何调整。