亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS輕松實現導航欄透明漸變

2020-07-26 02:57:36
字體:
來源:轉載
供稿:網友

首先我們來看下效果

1465185529377975.gif

一開始當我們什么只設置了一張圖片作為它的頭部視圖的時候,它是這樣的

1.首當其沖的,我們先得把導航欄弄透明

那么我們首先得知道,設置navigationBar的BackgroundColor為Clear是沒用的,你可以試著設置它的clear,但是沒用,原因一會兒我們就知道了。

而對于把導航欄設置為透明,網上大多數的方法是:

[self.navigationController.navigationBar setBackgroundImage:[UIImage new]forBarMetrics:UIBarMetricsDefault];self.navigationController.navigationBar.shadowImage = [UIImage new];

你可以運行這兩句話到你的程序,你會發現這樣確實是可以的,那么我們可以從中得到幾個信息:

1)我們設置的是BackgroundImage,說明也許在我們的navigationBar上有一個ImageView的子視圖,而我們的看到的導航欄實際上看到的就是這個圖片,因此設置它為無圖片我們就可以看到透明,而設置backgroundColor卻不行。

2)我們還設置了shadowImage為無圖,它其實就是導航欄下面的那根細線,如果你不寫第二句話你則會看到一根線。

我們來看一下navigationBar的結構圖

從圖中我們可以很清楚的看到,NavigationBar他背后是有一張類型為_UINavigationBarBackground(UIImageView的子類)的視圖,我們平時看到的大部分其實都是它,第二個箭頭那里的ImageView就是那根細線,他是加在我們背景的ImageView上面的,我們設置BackgroundImage其實就是設置_UINavigationBarBackground的image。

運行效果如圖:

2.還得讓它不僅僅是透明

這,怎么整?我們有幾種方案

設置漸變圖片
根據上面設置為透明的方法,我們最直接能想到的還是setBackgroundImage,根據滑動距離去設置圖片的alpha。是的,我們是去設置圖片,而不是設置UIView,這樣的話就需要你不停的去生成新圖片賦給BackgroundImage,這樣感覺是不是會不太好?

運行時動態綁定
我們可以在運行時動態綁定他的背景視圖,然后設置他的背景透明度,網上有一個通過類別方式動態綁定實現導航欄顏色漸變的三方框架,感興趣的朋友可以自行去研究研究LTNavigation。

直接獲取那張ImageView,然后設置他的透明度。
其實我們從結構圖中可以看出來,它是NavigationBar的子視圖,我們可以通過for...in循環遍歷navigationBar.subviews,然后獲得這個view。

當然,更簡單的,它其實就在subviews的第一個,即我們可以這樣:

barImageView = self.navigationController.navigationBar.subviews.firstObject

我們可以用一個全局的imageView引用他,以免我們每次都要寫一長串。

3.其實已經可以了

我們還需要做什么?沒錯,最后一步,我們僅僅只需要在scrollViewDidScroll里面,根據偏移量來動態改變barImageView的背景顏色(或者透明度)就行了。

例如我們需要在-64(默認的最小偏移量)到200之間變化:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {  CGFloat minAlphaOffset = - 64;  CGFloat maxAlphaOffset = 200;  CGFloat offset = scrollView.contentOffset.y;  CGFloat alpha = (offset - minAlphaOffset) / (maxAlphaOffset - minAlphaOffset);  _barImageView.alpha = alpha;}

就這樣你就可以實現我在文章一開始那個圖片的效果了(其實并不是,tintColor和satusBarStyle還沒變)。

Tips

1)你也可以動態的更改的狀態欄和標題的顏色以和導航欄更匹配

//狀態欄[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];//標題顏色self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor someColor]}//導航欄子控件顏色self.navigationController.navigationBar.tintColor = [UIColor someColor];

2)注意釋放tableView 的 delegate(不然你進進出出時候會發現哪里好像不太對)

- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.tableView.delegate = self;}- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; self.tableView.delegate = nil;}

3)導航欄是公有的

所以你可能需要在ViewWillDisappear里面再把導航欄設置為你需要的樣子

還有一件事情(This word Learn from Steve jobs)

我自己封裝了一些導航欄變化效果,使用簡單,歡迎大家嘗試:MXNavigationBarManager。

1488504-d4f949950141899b.gif

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品美女主播在线观看纯欲| 精品自在线视频| 日韩精品在线播放| 深夜福利日韩在线看| 亚洲自拍偷拍色图| 上原亚衣av一区二区三区| 91伊人影院在线播放| 久久久999精品免费| 91精品国产免费久久久久久| 精品日韩美女的视频高清| 亚洲韩国欧洲国产日产av| 日韩电影第一页| 久久精品国产精品亚洲| 国产欧美婷婷中文| 欧美性黄网官网| 91精品久久久久久久久久久久久久| 日韩专区在线播放| 日韩美女主播视频| 中文字幕不卡在线视频极品| 亚洲精品美女在线观看播放| 欧美激情亚洲激情| 日韩欧美在线观看视频| 午夜精品美女自拍福到在线| 欧美午夜久久久| 亚洲国产一区自拍| 疯狂蹂躏欧美一区二区精品| 91精品综合久久久久久五月天| 狠狠色狠色综合曰曰| 久精品免费视频| 欧美日韩电影在线观看| 久久久久成人精品| 丝袜一区二区三区| 九九视频这里只有精品| 8x拔播拔播x8国产精品| 国产在线观看不卡| 97久久精品人搡人人玩| 亚洲欧美在线免费观看| 国产精品第1页| 欧美精品中文字幕一区| 中日韩美女免费视频网站在线观看| 亚洲精品美女久久| 亚洲欧洲激情在线| 欧美午夜www高清视频| 久久亚洲精品视频| 欧美黑人xxxⅹ高潮交| 日本高清视频精品| 亚洲天堂一区二区三区| 久久偷看各类女兵18女厕嘘嘘| 日韩国产在线看| 性亚洲最疯狂xxxx高清| 国产精品成久久久久三级| 国产日韩欧美综合| 亚洲va国产va天堂va久久| 国产精品美女久久久免费| 日韩中文字幕在线观看| 91热福利电影| 疯狂蹂躏欧美一区二区精品| 国产亚洲精品91在线| 久久久久久久久久久人体| 在线成人激情视频| 日韩一区二区三区在线播放| 亚洲网站在线看| 正在播放欧美一区| 亚洲人成网站免费播放| xvideos亚洲人网站| 中文字幕一精品亚洲无线一区| 国外成人免费在线播放| 日韩视频精品在线| 欧美极品少妇xxxxⅹ裸体艺术| 成人av资源在线播放| 国产在线拍揄自揄视频不卡99| 亚洲精品视频播放| 成人免费淫片视频软件| 国产成人福利夜色影视| 久久久久成人精品| 亚洲第一页在线| 91性高湖久久久久久久久_久久99| 在线性视频日韩欧美| 夜夜嗨av一区二区三区四区| 欧美电影在线观看完整版| 欧美诱惑福利视频| 第一福利永久视频精品| 国产福利精品在线| 国产日韩欧美影视| 亚洲欧洲国产伦综合| 成人黄色中文字幕| 欧美电影免费观看大全| 日韩国产激情在线| 亚洲九九九在线观看| 性欧美在线看片a免费观看| 7777kkkk成人观看| 国产色综合天天综合网| 91国产视频在线| 4438全国亚洲精品在线观看视频| 日韩a**站在线观看| 欧美激情第99页| 一个人看的www欧美| 亚洲人a成www在线影院| 在线亚洲午夜片av大片| 午夜精品久久久久久99热软件| 成人看片人aa| 久久成人人人人精品欧| 亚洲欧洲国产一区| 色黄久久久久久| 日本成人在线视频网址| 国产日韩欧美自拍| 亚洲男人7777| 一区二区日韩精品| 欧美午夜影院在线视频| 国产精品免费小视频| 国产精品黄视频| 久热精品视频在线| 国产精品亚洲综合天堂夜夜| 欧美一级大片在线免费观看| 国产日韩欧美在线播放| 亚洲美女av在线播放| 深夜福利国产精品| 成人在线视频网| 成人午夜黄色影院| 欧美日韩激情视频| 欧美日韩亚洲国产一区| 欧美黑人狂野猛交老妇| 国产精品日日做人人爱| 欧美激情视频网| 成人精品一区二区三区| 国产香蕉精品视频一区二区三区| 亚洲剧情一区二区| 欧美午夜精品久久久久久浪潮| 欧美激情第三页| 亚洲国产精品久久久| 日韩精品中文字幕久久臀| 亚洲综合日韩中文字幕v在线| 欧美野外wwwxxx| 性色av一区二区三区在线观看| 亚洲视频精品在线| 久久91超碰青草是什么| 国产精品一区二区三区在线播放| 色妞欧美日韩在线| 日韩精品亚洲元码| 欧美日韩色婷婷| 久久夜色精品国产欧美乱| 日韩视频一区在线| 亚洲在线免费视频| 日本成人黄色片| 国产精品久久久久久久久久久久| 久久久亚洲国产| 日韩电影视频免费| 国产精品精品久久久| 国产日本欧美一区二区三区| 国产精品91久久| 色999日韩欧美国产| 在线播放亚洲激情| 国产日韩在线免费| 国产精品成人免费电影| 亚洲自拍偷拍一区| 成人女保姆的销魂服务| 日韩中文字幕视频在线| 日韩精品有码在线观看| 日韩免费高清在线观看| 中文字幕精品av| 欧美视频免费在线| 成人激情视频在线| 色综合久久88色综合天天看泰| 久久精品青青大伊人av|