iOS導(dǎo)航欄對控制器view的影響是什么

本篇內(nèi)容介紹了“iOS導(dǎo)航欄對控制器view的影響是什么”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)是專業(yè)的新鄉(xiāng)縣網(wǎng)站建設(shè)公司,新鄉(xiāng)縣接單;提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行新鄉(xiāng)縣網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

前言

當(dāng)我們設(shè)置導(dǎo)航欄的某些屬性的時(shí)候會導(dǎo)致控制器View的布局不是從window的 (0,0)點(diǎn)開始布局,會從導(dǎo)航欄底部開始布局,而此時(shí)在 viewDidLoad 中 獲取到View的frame 確實(shí)從(0,0)開始的,只有在 viewDidAppear中才能獲取到 view 最終的實(shí)際 frame

一些屬性

在了解 UINavigationBar之前,有必要了解 UINavigationBar 的一些屬性

///默認(rèn) default 半透明 black 黑色open var barStyle: UIBarStyle// 底部陰影橫線,默認(rèn)nil// 官方解釋還涉及到了一個(gè)設(shè)置背景圖片的方法 -setBackgroundImage:forBarMetrics:open var shadowImage: UIImage?// 7.0 以后已經(jīng)改變,修改bar 背景顏色 請使用 -barTintColoropen var tintColor: UIColor!// default is nil bar 的背景顏色open var barTintColor: UIColor?/// 影響比較大的屬性見下文,是否是半透明的open var isTranslucent: Bool // Default is NO on iOS 6 and earlier. Always YES if barStyle is set to UIBarStyleBlackTranslucent

一些條件

///當(dāng)前 控制器并不是 tableviewcontrollerself.view.backgroundColor = .cyanself.tableView.backgroundColor = .redself.navigationItem.title = "rootVC 標(biāo)題"tableView.frame = view.bounds

1.1 默認(rèn)導(dǎo)航欄 帶有半透明效果

此時(shí)view 和 tableview 和 導(dǎo)航欄布局

1 view全屏布局

2 tableview默認(rèn)從導(dǎo)航欄下部開始布局

3 導(dǎo)航欄半透明

細(xì)節(jié) : 此時(shí)導(dǎo)航欄中的 _UIVisualEffectBackdropView 屬性變成紅色即 tableview的背景色

1.2 此時(shí)如果想讓tableview 從頂部開始布局可添加代碼

if #available(iOS 11.0,*) {   self.tableView.contentInsetAdjustmentBehavior = UIScrollView.ContentInsetAdjustmentBehavior.never;  } else {   self.automaticallyAdjustsScrollViewInsets = false;  }

神奇的是 如果 tableview從頂部布局 此時(shí)導(dǎo)航欄中的 _UIVisualEffectBackdropView 屬性又會變成默認(rèn)白色

2 設(shè)置導(dǎo)航欄 isTranslucent屬性

isTranslucent 在6.0以后默認(rèn)是 true

如果設(shè)置為false

self.navigationController?.navigationBar.isTranslucent = false

此時(shí)布局

1 view 從導(dǎo)航欄底部布局

2 tableview 從view (0,0) 布局

3 導(dǎo)航欄不透明 _UIBarBackground 默認(rèn)為白色

3.1設(shè)置barTintColor

self.navigationController?.navigationBar.isTranslucent = trueself.navigationController?.navigationBar.barTintColor = UIColor.purple

此時(shí)布局和默認(rèn)一樣

1 view從 (0,0)布局

2 tableview從導(dǎo)航欄底部布局3 導(dǎo)航欄半透明

不同的是 UIVisualEffectView多加了一個(gè) _UIVisualEffectSubview 用來顯示我們自定義的背景色

其他兩個(gè) _UIVisualEffectSubview 和 _UIVisualEffectBackdropView view 用來實(shí)現(xiàn)半透明效果

3.2在 barTintColor基礎(chǔ)上設(shè)置 isTranslucent = false 屬性

結(jié)果 和 2 中的效果一樣。不同的是

_UIBarBackground 變成了我們自定義的顏色

4.1 設(shè)置 setBackgroundImage

設(shè)置一張純色圖片

self.navigationBar.setBackgroundImage(UIColor.mm_colorImgHex(color_vaule: hex,alpha: 1), for: UIBarPosition.any, barMetrics: .default)

此時(shí) 布局

1 view 從導(dǎo)航欄底部布局 view---(0.0, 88.0, 414.0, 808.0)

2 tableview 從(0,0) 布局

3 導(dǎo)航欄不透明

此時(shí)打印導(dǎo)航欄 isTranslucent屬性 為false也就是說如果調(diào)用了setBackgroundImage會默認(rèn) 將 isTranslucent 置位 false

translate-----Optional(false)

4.2 我們在4.1的情況下 修改 isTranslucent

在 viewWillAppear 中修改 isTranslucent 為 true

此時(shí)布局

1 view 全屏布局

2 tableview從導(dǎo)航欄底部頂部開始布局

3 導(dǎo)航欄透明

此時(shí)打印我們的 _UIBarBackground 中的 BackgroundImage 透明度已被修改

<UIImageView: 0x7fbef1f0ce10; frame = (0 0; 414 88); alpha = 0.909804; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x600000cabd00>>

“iOS導(dǎo)航欄對控制器view的影響是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

當(dāng)前文章:iOS導(dǎo)航欄對控制器view的影響是什么
路徑分享:http://m.kartarina.com/article14/phoode.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化商城網(wǎng)站網(wǎng)站改版App開發(fā)外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
主站蜘蛛池模板: 国产爆乳无码一区二区麻豆| 成在人线av无码免费高潮喷水| 亚洲成A人片在线观看无码不卡| 天堂一区人妻无码| 免费看成人AA片无码视频羞羞网| 精品无码久久久久久久久| 东京热无码av一区二区| 亚洲av无码片区一区二区三区| 日韩精品无码人妻一区二区三区| 无码少妇一区二区| 日韩A无码AV一区二区三区| 蜜桃臀无码内射一区二区三区| 无码 免费 国产在线观看91 | 亚洲一本大道无码av天堂| 国产V亚洲V天堂无码久久久| 亚洲av无码无线在线观看| 无码精品人妻一区二区三区漫画 | 久久久无码精品午夜| 一本一道av中文字幕无码| 精品人妻无码一区二区色欲产成人| 韩日美无码精品无码| yy111111少妇影院无码 | 尤物永久免费AV无码网站| 亚洲AV永久青草无码精品| 亚洲va中文字幕无码| 无码中文字幕一区二区三区| 99精品国产在热久久无码| 亚洲国产精品无码av| 亚洲AV中文无码乱人伦下载| 成人无码a级毛片免费| 国产成人无码区免费网站| 中文字幕无码人妻AAA片| 久久无码一区二区三区少妇| 无码国内精品久久人妻麻豆按摩 | 精品乱码一区内射人妻无码| 亚洲AV永久无码精品一福利| 最新无码人妻在线不卡| 曰产无码久久久久久精品| 亚洲精品无码久久久久久久| 亚洲色av性色在线观无码| 亚洲AV成人噜噜无码网站|