这是我对UIScrollView(iOS 7)的理解:
contentOffset
定义内容视图的原点contentInset
实际上可以添加"填充"围绕内容视图在Xcode中,我创建了一个单视图应用程序。在IB中,我向视图控制器添加了UIScrollView
,并将控制器嵌入到导航控制器中。在视图控制器代码中,我添加了以下方法:
- (void)viewDidAppear:(BOOL)animated
{
[self.scrollView setContentSize:CGSizeMake(380, 1000)];
NSLog(@"top = %f, bounds top %f", self.scrollView.frame.origin.y, self.scrollView.bounds.origin.y);
NSLog(@"offset y = %f", self.scrollView.contentOffset.y);
NSLog(@"height = %f", self.scrollView.contentSize.height);
NSLog(@"inset top = %f", self.scrollView.contentInset.top);
NSLog(@"inset bottom = %f", self.scrollView.contentInset.bottom);
}
我的结果:
top = 0.000000, bounds top -64.000000
offset y = -64.000000
height = 1000.000000
top = 64.000000
bottom = 0.000000
contentInset.top
值有效地将内容向下移动,使其低于导航栏。为什么contentOffset.y
设置为-64,滚动视图的边界设置为-64?
提前致谢
答案 0 :(得分:1)
因为iOS 7.0中的automaticallyAdjustsScrollViewInsets
默认值为YES
。
此属性的默认值为YES,这使容器视图控制器知道应调整此视图控制器视图的滚动视图插图,以考虑状态栏,搜索栏,导航栏,工具栏所占用的屏幕区域,或标签栏。如果视图控制器实现管理自己的滚动视图插入调整,请将此属性设置为NO。