有人可以向我解釋UIScrollView
實例中的contentInset屬性用於什麼嗎?也許提供一個例子?什麼是UIScrollView contentInset屬性?
回答
它設置內容視圖和封閉滾動視圖之間的插入距離。 aScrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 7.0);
這裏有一個很好的iOS Reference Library article on scroll views有一個信息截圖(圖1-3) - 我會通過文字在這裏複製它:
_|←_cW_→_|_↓_
| |
---------------
|content| ↑
↑ |content| contentInset.top
cH |content|
↓ |content| contentInset.bottom
|content| ↓
---------------
_|_______|___
↑
(cH = contentSize.height; cW = contentSize.width)
滾動視圖包圍內容視圖加上提供任何填充由指定的內容插入。
偉大的問題。
考慮下面的例子(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)];
}
中的插圖是隻有這樣才能迫使你的滾輪有在哪裏你想要的內容的「窗口」。我仍然在討論這個示例代碼,但是這個想法就在那裏:使用insets在UIScrollView
上獲得一個「窗口」。
雖然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
,我們希望文字從來沒有透明地出現在最上面的扣子下方,但我們想要的文字出現在底部標籤欄下方但仍然允許滾動,因此我們可以更新透明地坐在BOTTOM TAB BAR下的文本。
然後,我們將頂部原點設置在TOP按鈕下方,並將高度設置爲包含底部標籤底部的底部。要訪問坐在BOTTOM TAB BAR內容下方的文本,我們將底部插入設置爲BOTTOM TAB BAR的高度。
如果沒有插圖,滾動條不會讓您向上滾動內容以輸入內容。使用插圖,就好像內容具有額外的「BLANK CONTENT」內容插入的大小。空白文本已被「插入」到真實的「內容」 - 這就是我記住這個概念的方式。
它用於在UIScrollView
添加填充沒有contentInset
,表視圖是這樣的:
然後設置contentInset
:
tableView.contentInset = UIEdgeInsets(top: 20, left: 0, bottom: 0, right: 0)
的效果如下:
似乎更好,對不對?
我寫了一個blog來研究contentInset
,歡迎批評。
- 1. 什麼是UIScrollView的「內容視圖」?
- 2. iOS7 UIScrollView contentInset不起作用
- 3. NSTextView上的contentInset屬性等效於什麼?
- 4. 什麼是屬性?
- 5. 防止UITableView contentInset屬性影響其backgroundView?
- 6. UIScrollView「view」屬性
- 7. 什麼是強屬性屬性
- 8. 在沒有contentInset的UIScrollView中居中UIImageView?
- 9. UIScrollView與contentInset休息UISearchBar「自動對焦」
- 10. UIScrollView contentInset不能正常工作
- 11. UIScrollView設置contentInset在viewWillLayoutSubviews或viewDidLayoutSubviews
- 12. UIScrollView如何設置ContentInset和ScrollerInset
- 13. 設置的UIScrollView的contentInset不工作
- 14. UIScrollView的contentInset使用自動佈局
- 15. contentInset在ios7中被UIScrollView忽略
- 16. 什麼是HttpDelete屬性
- 17. PHPUnit:'屬性'是指什麼?
- 18. 什麼是antiJARLocking屬性?
- 19. 什麼是ThemeInfo屬性?
- 20. 什麼是屬性節點
- 21. 什麼是「空」@about屬性?
- 22. 什麼是g_editable屬性?
- 23. 什麼是.NET Control.Margin屬性?
- 24. 什麼是lpformnum屬性?
- 25. 什麼是UITableView separatorEffect屬性?
- 26. 什麼是同步 - 屬性?
- 27. 什麼是data-mouseover屬性?
- 28. PoolingNHttpClientConnectionManager:什麼是timeToLive屬性?
- 29. 什麼是引用屬性?
- 30. 什麼是Unity InjectionConstructor屬性?
是否用於向UIScrollView添加填充值?如果不是,你能給我一個實際的例子。我的問題不是如何實現它,而是何時實現它。 – ForeignerBR 2009-12-31 01:29:33
是的,它填充滾動視圖內部的內容。它類似於CSS'padding'屬性。 – 2009-12-31 01:37:20
對不起,我可以移動它自己的問題,但基於此,如果您將每個contentInset值設置爲0而不是contentHeight,例如實際發生了什麼?這是否會迫使整個scrollview成爲您設置的高度? – jakev 2013-04-14 17:33:32