UIScrollView
内有contentView
contentView
内容viewDidAppear
。一切都是以编程方式创建的,而不是在IB中(我在IB中避免不同屏幕尺寸约束混乱的方式)。相应的NIB上的Autolayout是关闭的,所以这不是问题。以下所有代码均位于CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;
CGFloat screenHeight = screenSize.height;
self.scrollView = [[UIScrollView alloc] initWithFrame:
CGRectMake(0, 65, 320, screenHeight)];
scrollView.backgroundColor = [UIColor clearColor];
UIView *contentView = [[UIView alloc] initWithFrame:
CGRectMake(0, 0, 320, 1200)];
[scrollView addSubview: contentView];
[scrollView setContentSize:contentView.frame.size];
scrollView.contentSize = CGSizeMake(320, 1200);
[self.view addSubview:scrollView];
:
{{1}}
它在iPhone 5上滚动了一点,但只比屏幕尺寸大20个像素。在iPhone 4上,它一直向下滚动到1200像素,没问题。
答案 0 :(得分:0)
请尝试:
self.scrollView = [[UIScrollView alloc] initWithFrame:
CGRectMake(0, 65, 320, screenHeight - 65)];
答案 1 :(得分:0)
自己想出来。我在viewDidAppear
内加载了所有元素,而不仅仅是scrollView
。
将contentView
声明和contentView
内的所有元素移动到它自己的函数中,然后在viewDidLoad
中声明,它解决了问题并且所有内容都加载正常。< / p>