为什么UIScrollView在ios 6和ios 7中从顶部留出空间

时间:2013-12-17 09:11:38

标签: iphone objective-c ios6 uiscrollview ios7

enter image description here

enter image description here

我关闭了Autolayout,并且viewcontroller嵌入在导航控制器中。 我正在使用Xcode 5,Storyboard。

我不明白为什么它会从顶部留下空间。 实际上在故事板中我把我的标签正好放在导航栏下方。 但是当我在模拟器上运行它时,它会从顶部留下空间。

解决此问题的黑客方法之一

-(void)viewWillLayoutSubviews
{
   self.scrollViewMain.frame = CGRectMake(0, -70, 320, 800);

   self.scrollViewMain.contentSize = CGSizeMake(320, 800);
}

但我错过了一些非常简单的方法。

7 个答案:

答案 0 :(得分:156)

在Xcode 5中,在故事板中选择您的控制器>在“属性”检查器中,禁用“调整滚动视图插入” 还要检查是否已设置任何contentInset

修改:我附上了图片

enter image description here

答案 1 :(得分:82)

修复是在viewDidLoad;

之后实现以下代码行

self.automaticallyAdjustsScrollViewInsets = NO;

答案 2 :(得分:32)

iOS 11更新

if #available(iOS 11.0, *) {
    scrollView.contentInsetAdjustmentBehavior = .never
} else {
    automaticallyAdjustsScrollViewInsets = false
}

答案 3 :(得分:8)

  

转到主故事板。选择视图控制器,参见属性“调整   滚动视图“属性检查器中的昆虫”。如果您不想要顶部   spacing.then取消选中“Top Top Bars”。如果你不想要屁股   spacing.then取消选中“Under Bottom Bars”。这种问题来了   当我们使用滚动视图相关的控制器时。

     

这是导航和标签栏的功能,可以像滚动控件一样调整滚动视图中的内容。

答案 4 :(得分:7)

Inspector:选择scrollView并设置内容插入 - 从不

enter image description here

答案 5 :(得分:4)

对于我在xcode 7和Swift 2.x中,我使用for循环填充UIScrollView,并且必须将contentInset设置为零。

=IF(ISNUMBER(SEARCH("spare",B2)), "0", VLOOKUP(conditions))

答案 6 :(得分:0)

在StoryBoard中,将ContentInsets选择为永不:

enter image description here