第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解釋iOS 7中自動調(diào)整-ScrollViewInset、ExtendedLayout-

解釋iOS 7中自動調(diào)整-ScrollViewInset、ExtendedLayout-

森林海 2019-07-19 10:10:27
解釋iOS 7中自動調(diào)整-ScrollViewInset、ExtendedLayout-OpaqueBars、EDgesFortendedLayout之間的差異我讀了很多關(guān)于iOS 7 UI轉(zhuǎn)換的文章。我無法得到這三個屬性automaticallyAdjustsScrollViewInsets, extendedLayoutIncludesOpaqueBars, edgesForExtendedLayout??例如,我試圖讓我的視圖控制器從狀態(tài)欄下面開始,但我無法實現(xiàn)它
查看完整描述

3 回答

?
BIG陽

TA貢獻(xiàn)1859條經(jīng)驗 獲得超6個贊

從iOS 7開始,視圖控制器默認(rèn)使用全屏布局。同時,您可以更好地控制視圖的布局方式,而這些屬性就是這樣完成的:

EDgesfortendedLayout

基本上,使用這個屬性,您可以設(shè)置視圖的哪些邊可以擴(kuò)展到覆蓋整個屏幕。想象一下你推一個UIViewController變成UINavigationController..當(dāng)該視圖控制器的視圖被放置時,它將從導(dǎo)航欄結(jié)束的位置開始,但該屬性將設(shè)置視圖的哪些邊(上、左、下、右)可以擴(kuò)展以填充整個屏幕。

讓我們舉一個例子來看看:

UIViewController *viewController = [[UIViewController alloc] init];viewController.view.backgroundColor = [UIColor redColor];
UINavigationController *mainNavigationController = [[UINavigationController alloc] initWithRootViewController:viewController];

在這里,您沒有設(shè)置edgesForExtendedLayout,因此采用默認(rèn)值(UIRectEdgeAll),因此視圖擴(kuò)展其布局以填充整個屏幕。

結(jié)果是:

如您所見,紅色背景延伸到導(dǎo)航欄和狀態(tài)欄后面。

現(xiàn)在,您要將該值設(shè)置為UIRectEdgeNone,因此,您要告訴視圖控制器不要將視圖擴(kuò)展到屏幕上:

UIViewController *viewController = [[UIViewController alloc] init];viewController.view.backgroundColor = [UIColor redColor];
viewController.edgesForExtendedLayout = UIRectEdgeNone;UINavigationController *mainNavigationController = [[UINavigationController alloc]
 initWithRootViewController:viewController];

其結(jié)果是:

自動調(diào)整ScrollViewInset

視圖為UIScrollView或者類似的,就像UITableView..您希望您的表從導(dǎo)航欄結(jié)束的位置開始,因為如果沒有,您將不會看到整個內(nèi)容,但同時希望您的表在滾動時覆蓋整個屏幕。在這種情況下,設(shè)置edgesForExtendedLayout因為您的表將開始滾動導(dǎo)航條結(jié)束的位置,并且它不會在其后面滾動,因此對任何操作都不起作用。

下面是這個屬性的方便之處,如果您讓視圖控制器自動調(diào)整inset(將此屬性設(shè)置為yes,也是默認(rèn)值),它將嵌入添加到表的頂部,因此表將從導(dǎo)航條結(jié)束的位置開始,但滾動將覆蓋整個屏幕。

此時設(shè)置為“否”:

和“是”(默認(rèn)情況下):

在這兩種情況下,表在導(dǎo)航欄后面滾動,但在第二種情況下(是),它將從導(dǎo)航欄下面開始。

擴(kuò)展LayoutIncludeesOpaqueBars

這個值只是對以前的值的一個補充。默認(rèn)情況下,此參數(shù)設(shè)置為否。如果狀態(tài)欄是不透明的,則視圖將不會擴(kuò)展到包含狀態(tài)欄,即使您擴(kuò)展視圖以覆蓋它(edgesForExtendedLayoutUIRectEdgeAll).

如果將值設(shè)置為“是”,這將允許視圖再次位于狀態(tài)欄下。

如果有什么不清楚的地方,寫一篇評論,我會回答的。

IOS如何知道使用什么UIScrollView?

IOS獲取ViewController視圖中的第一個子視圖,即索引0處的子視圖,如果它是UIScrollView然后將解釋的屬性應(yīng)用到它。

當(dāng)然,這意味著UITableViewController默認(rèn)情況下工作(因為UITableView是第一個視圖)。


查看完整回答
反對 回復(fù) 2019-07-19
?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗 獲得超8個贊

不確定是否使用情節(jié)提要,但如果使用,則讓視圖控制器從狀態(tài)欄(以及底部欄上方)開始:

在IB中選擇視圖控制器,在“屬性”檢查器中,取消選擇“在頂部條下擴(kuò)展邊緣”和“在底部條下擴(kuò)展邊緣”。


查看完整回答
反對 回復(fù) 2019-07-19
  • 3 回答
  • 0 關(guān)注
  • 514 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號