欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

iOS怎么實(shí)現(xiàn)導(dǎo)航欄透明漸變-創(chuàng)新互聯(lián)

這篇文章主要介紹iOS怎么實(shí)現(xiàn)導(dǎo)航欄透明漸變,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供彭水苗族土家族企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為彭水苗族土家族眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

首先我們來看下效果

iOS怎么實(shí)現(xiàn)導(dǎo)航欄透明漸變

一開始當(dāng)我們什么只設(shè)置了一張圖片作為它的頭部視圖的時(shí)候,它是這樣的

iOS怎么實(shí)現(xiàn)導(dǎo)航欄透明漸變

1.首當(dāng)其沖的,我們先得把導(dǎo)航欄弄透明

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

而對(duì)于把導(dǎo)航欄設(shè)置為透明,網(wǎng)上大多數(shù)的方法是:

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

你可以運(yùn)行這兩句話到你的程序,你會(huì)發(fā)現(xiàn)這樣確實(shí)是可以的,那么我們可以從中得到幾個(gè)信息:

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

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

我們來看一下navigationBar的結(jié)構(gòu)圖

iOS怎么實(shí)現(xiàn)導(dǎo)航欄透明漸變

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

運(yùn)行效果如圖:

iOS怎么實(shí)現(xiàn)導(dǎo)航欄透明漸變

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

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

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

運(yùn)行時(shí)動(dòng)態(tài)綁定我們可以在運(yùn)行時(shí)動(dòng)態(tài)綁定他的背景視圖,然后設(shè)置他的背景透明度,網(wǎng)上有一個(gè)通過類別方式動(dòng)態(tài)綁定實(shí)現(xiàn)導(dǎo)航欄顏色漸變的三方框架,感興趣的朋友可以自行去研究研究LTNavigation。

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

當(dāng)然,更簡(jiǎn)單的,它其實(shí)就在subviews的第一個(gè),即我們可以這樣:

barImageView = self.navigationController.navigationBar.subviews.firstObject

我們可以用一個(gè)全局的imageView引用他,以免我們每次都要寫一長(zhǎng)串。

3.其實(shí)已經(jīng)可以了

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

例如我們需要在-64(默認(rèn)的最小偏移量)到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;

}

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

Tips

1)你也可以動(dòng)態(tài)的更改的狀態(tài)欄和標(biāo)題的顏色以和導(dǎo)航欄更匹配

//狀態(tài)欄
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
//標(biāo)題顏色
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor someColor]}
//導(dǎo)航欄子控件顏色
self.navigationController.navigationBar.tintColor = [UIColor someColor];

2)注意釋放tableView 的 delegate(不然你進(jìn)進(jìn)出出時(shí)候會(huì)發(fā)現(xiàn)哪里好像不太對(duì))

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

}

3)導(dǎo)航欄是公有的

所以你可能需要在ViewWillDisappear里面再把導(dǎo)航欄設(shè)置為你需要的樣子

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

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

iOS怎么實(shí)現(xiàn)導(dǎo)航欄透明漸變

以上是“iOS怎么實(shí)現(xiàn)導(dǎo)航欄透明漸變”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站aaarwkj.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

新聞標(biāo)題:iOS怎么實(shí)現(xiàn)導(dǎo)航欄透明漸變-創(chuàng)新互聯(lián)
新聞來源:http://aaarwkj.com/article24/ccghje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、商城網(wǎng)站外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷、網(wǎng)站制作、響應(yīng)式網(wǎng)站

廣告

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

微信小程序開發(fā)
天天操时时操夜夜操| 色婷婷国产精品高潮呻吟| 天天操天天日天天干夜夜情欢| 香蕉视频欧美久久精品| 精品国产免费第一区二区三| 日本女优中文字幕久久| 99热精品免费在线观看| 日本东京热在线免费观看| 国产高跟丝袜av专区| 欧美国产成人精品一区| 中文字幕三级电影天堂| 日本一区二区不卡二区| 欧美午夜精品一二三区| 国产精品高清呻吟久久久| 999久久免费精品国产| 五月婷婷色综合激情五月| 久久国产精品亚洲av四虎| 亚洲国产精品一区一区| 国产不卡视频观看网站| 国产成人综合久久二区| 国产一区二区三区精品女同 | 亚洲av乱码一区二区三四五六七| 欧美亚洲另类在线日韩国产| 一区二区三区欧美小黄片| 久久精品有码视频免费观看| 国产精品成久久久久三级| 欧美日韩在线高清一区二区| 欧美日韩一区中文字幕| 色噜噜色一区二区三区| 黄色大片免费在线观看| 免费高清视频一区二区在线观看| 亚州欧美制服另类国产| 91欧美日韩中在线视频| 亚洲精品国产av一区| 色哟哟网站在线观看入口| 亚洲丰满一区二区三区在线| 国产精品99久久久久久人| 麻豆国产原创av色哟哟| 日韩精品专区中文字幕| 亚洲男人的天堂社区av| 日韩综合欧美激情另类|