什么是UIScrollView contentInset属性?

For*_*rBR 155 uiscrollview

有人可以向我解释一个UIScrollView实例中的contentInset属性用于什么?也许提供一个例子?

jba*_*all 235

它设置内容视图和封闭滚动视图之间的插入距离. aScrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 7.0);

这是关于滚动视图的一篇很好的iOS参考资料库文章,其中有一个信息截图(图1-3) - 我将通过文本复制它:

  _|?_cW_?_|_?_
   |       | 
---------------
   |content| ?
 ? |content| contentInset.top
cH |content|
 ? |content| contentInset.bottom
   |content| ?
---------------
  _|_______|___ 
             ?


   (cH = contentSize.height; cW = contentSize.width)
Run Code Online (Sandbox Code Playgroud)

滚动视图包含内容视图以及指定内容insets提供的任何填充.

  • 是的,它填充滚动视图内部的内容.它类似于CSS`padding`属性. (28认同)

Fab*_*ian 85

虽然jball的答案是对内容插入的极好描述,但它没有回答何时使用它的问题.我会借用他的图表:

  _|?_cW_?_|_?_
   |       | 
---------------
   |content| ?
 ? |content| contentInset.top
cH |content|
 ? |content| contentInset.bottom
   |content| ?
---------------
   |content|    
-------------?-
Run Code Online (Sandbox Code Playgroud)

这就是你在做的时候所得到的,但它的用处仅在滚动时显示:

  _|?_cW_?_|_?_
   |content| ? content is still visible
---------------
   |content| ?
 ? |content| contentInset.top
cH |content|
 ? |content| contentInset.bottom
   |content| ?
---------------
  _|_______|___ 
             ?
Run Code Online (Sandbox Code Playgroud)

该顶行内容仍然可见,因为它仍然在滚动视图的框架内.考虑顶部偏移的一种方法是"当我们一直滚动到顶部时,将内容向下移动多少滚动视图"

要查看实际使用它的位置,请查看iphone上的内置照片应用程序.导航栏和状态栏是透明的,滚动视图的内容在下方可见.那是因为滚动视图的框架延伸到那么远.但如果不是内容插入,那么当你一直走到顶端时,你永远无法将内容的顶部清除透明导航栏.


Fai*_*mon 8

内容插入解决了内容在用户界面的其他部分下面但仍然可以使用滚动条保持可访问的问题.换句话说,内容插入的目的是使交互区域小于其实际区域.

考虑我们有三个逻辑区域的情况:

TOP BUTTONS

TEXT

BOTTOM TAB BAR
Run Code Online (Sandbox Code Playgroud)

我们希望TEXT永远不会透明地显示在TOP BUTTONS下面,但是我们希望Text出现在BOTTOM TAB BAR下面但仍然允许滚动,这样我们就可以更新文本在BOTTOM TAB BAR下透明地坐着.

然后我们将顶部原点设置为低于TOP BUTTONS,高度设置为BOTTOM TAB BAR的底部.要访问位于BOTTOM TAB BAR内容下方的Text,我们将底部插图设置为BOTTOM TAB BAR的高度.

没有插入,滚动条不会让您向上滚动内容足以输入内容.使用插图,就好像内容具有内容插入大小的额外"BLANK CONTENT".空白文本已经"插入"真正的"内容" - 这就是我记住这个概念的方式.