Answers:
它设置了内容视图和封闭的滚动视图之间的插图距离。
对象
aScrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 7.0);
斯威夫特5.0
aScrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 7.0)
这是一篇关于滚动视图的出色的iOS参考库文章,其中包含丰富的屏幕截图(图1-3)-我将在此处通过文本进行复制:
_|←_cW_→_|_↓_
| |
---------------
|content| ↑
↑ |content| contentInset.top
cH |content|
↓ |content| contentInset.bottom
|content| ↓
---------------
_|_______|___
↑
(cH = contentSize.height; cW = contentSize.width)
滚动视图将内容视图加上指定的内容插图所提供的任何填充。
padding
属性。
尽管jball的答案很好地描述了内容插图,但它没有回答何时使用它的问题。我将从他的图表中借用:
_|←_cW_→_|_↓_
| |
---------------
|content| ↑
↑ |content| contentInset.top
cH |content|
↓ |content| contentInset.bottom
|content| ↓
---------------
|content|
-------------↑-
那就是您在执行此操作时所获得的,但是它的用处仅在您滚动时显示:
_|←_cW_→_|_↓_
|content| ← content is still visible
---------------
|content| ↑
↑ |content| contentInset.top
cH |content|
↓ |content| contentInset.bottom
|content| ↓
---------------
_|_______|___
↑
内容的第一行仍然可见,因为它仍在滚动视图的框架内。想到顶部偏移量的一种方法是“当我们一直滚动到顶部时,将内容向下移动多少滚动视图”
要查看实际使用的位置,请查看iPhone上的内置“照片”应用程序。导航栏和状态栏是透明的,滚动视图的内容在下面可见。那是因为滚动视图的框架延伸了那么远。但是,如果不是要插入内容,那么当您一直到达顶部时,您将永远无法使内容的顶部清除透明的导航栏。
内容插图解决了以下问题:内容位于用户界面的其他部分之下,但仍可以使用滚动条访问。换句话说,内容插图的目的是使交互区域小于其实际区域。
考虑一下我们在屏幕上具有三个逻辑区域的情况:
TOP BUTTONS
TEXT
BOTTOM TAB BAR
并且我们希望TEXT永远不会透明显示在TOP BUTTONS下方,但是我们希望Text出现在BOTTOM TAB BAR下方但仍然允许滚动,因此我们可以透明地更新坐在BOTTOM TAB BAR下方的文本。
然后,我们将顶部原点设置为TOP BUTTONS之下,将高度设置为包括BOTTOM TAB BAR的底部。要访问位于“底部标签栏”内容下方的“文本”,我们将底部插图设置为“底部标签栏”的高度。
如果没有插图,滚动条将不允许您向上滚动内容以键入内容。对于插图,内容似乎具有内容插图大小的额外“空白内容”。空白文本已“插入”到真正的“内容”中,这就是我记住该概念的方式。
好问题。
考虑以下示例(scroller
是UIScrollView):
float offset = 1000;
[super viewDidLoad];
for (int i=0;i<500; i++) {
UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(i * 100, 50, 95, 100)] autorelease];
[label setText:[NSString stringWithFormat:@"label %d",i]];
[self.scroller addSubview:label];
[self.scroller setContentSize:CGSizeMake(self.view.frame.size.width * 2 + offset, 0)];
[self.scroller setContentInset:UIEdgeInsetsMake(0, -offset, 0, 0)];
}
插图是强制滚动条在所需内容上具有“窗口”的唯一方法。我仍然在弄弄这个示例代码,但是想法就在这里:使用插图在上获得一个“窗口” UIScrollView
。