ios導(dǎo)航欄透明的十萬個(gè)坑爹問題

功能需求:根新浪微博個(gè)人主頁類似,下拉拉伸放大圖片下拉刷新(前面文章已解決),向上滑動(dòng)的時(shí)候,導(dǎo)航欄的透明度逐漸增加,最后變成不透明的。當(dāng)然說起來感覺其實(shí)沒什么,不就是滑動(dòng)改變透明度嗎,但是做起來完全不是你想象的那樣。

首先解決透明度的問題,讓導(dǎo)航欄透明起來,如何做呢,我剛開始的做法是根據(jù)之前的經(jīng)驗(yàn),直接在導(dǎo)航欄上貼一張透明的圖片,但是由于項(xiàng)目原本就設(shè)置有藍(lán)色的導(dǎo)航背景了,所以怎么改也改不過來,有種欲哭無淚的感覺,于是各種找原因,甚至把基類里面的東西都改了,結(jié)果不盡人意,于是在群里找大神問,終于有大神回話,給出了這篇文章,簡(jiǎn)直救命稻草,感覺作者的境況跟我類似,于是乎就認(rèn)真看完,恍然大悟,原來導(dǎo)航條上竟然還有其他view,簡(jiǎn)直坑死人不要命,而且還沒api。。。所幸作者比較強(qiáng)大,寫了一個(gè)分類,于是我就直接取過來,然后開始設(shè)置

[self.navigationController.navigationBar lt_setBackgroundColor:[LE_BLUE_COLORcolorWithAlphaComponent:al]];

好了,終于透明了,當(dāng)然,這句話是丟在-(void)viewWillAppear:(BOOL)animated里面,不然當(dāng)出來的時(shí)候你會(huì)發(fā)現(xiàn)你的導(dǎo)航條還是藍(lán)色的,只不過稍微一動(dòng)就變透明了。。第一步完成了。。。

然后在scrollerview 的代理里面設(shè)置

#pragma mark - UIScrollViewDelegate

- (void)scrollViewDidScroll:(UIScrollView*)scrollView

{

//下拉隱藏頭部

if(scrollView ==self.zoneTableView) {

constantHeaderView.hidden= scrollView.contentOffset.y> -128?NO:YES;

}

//下拉伸伸圖片

CGFloatyOffset = scrollView.contentOffset.y+64;//如果有導(dǎo)航控制器,這里應(yīng)該加上導(dǎo)航控制器的高度64

if(yOffset < -IMAGEHEIGHT) {

CGRectframe =_zoomImageView.frame;

frame.origin.y= yOffset;

frame.size.height= -yOffset;

_zoomImageView.frame= frame;

}

//下拉刷新

if(yOffset < -IMAGEHEIGHT-60) {

[selfrefreshNuNuZoneInfo];

}

//下拉改變導(dǎo)航條的顏色

floatal =(yOffset +IMAGEHEIGHT)/IMAGEHEIGHT;

if( al <= 1) {

[self.navigationController.navigationBar lt_setBackgroundColor:[LE_BLUE_COLORcolorWithAlphaComponent:al]];

}else{

[self.navigationController.navigationBar lt_setBackgroundColor:[LE_BLUE_COLORcolorWithAlphaComponent:1]];

}

}

最下面這段就是,其他的可以當(dāng)作沒看見,之前有說過下拉拉伸圖片和下拉刷新出現(xiàn)實(shí)踐沖突的,就在這里解決。

下面就開始解決坑爹的玩意兒了,首先,當(dāng)你點(diǎn)擊cell跳轉(zhuǎn)的時(shí)候你會(huì)發(fā)現(xiàn)其他頁面的,你會(huì)發(fā)現(xiàn)其他頁面的導(dǎo)航條變色了 0.0你能說什么呢,改!

- (void)viewDidDisappear:(BOOL)animated

{

[[BaiduMobStat defaultStat]pageviewEndWithName:@"關(guān)注"];

[superviewDidDisappear:animated];

[self.navigationController.navigationBar lt_setBackgroundColor:[LE_BLUE_COLORcolorWithAlphaComponent:1]];

_topView.hidden=YES;

}

在這個(gè)頁面消失的時(shí)候 讓導(dǎo)航條不透明,好了,解決了 。。。

然后繼續(xù)滑動(dòng),然后跳轉(zhuǎn),好了下一頁顏色沒變化,但是!??!返回來之后怎么又透明了???,為什么呢,原來是在viewwill 里面設(shè)置的關(guān)系,真扯淡,改改!

-(void)viewWillAppear:(BOOL)animated{

CGFloatyOffset =zoneTableView.contentOffset.y+64;

floatal = (yOffset+IMAGEHEIGHT)/IMAGEHEIGHT;

if(al <= 1) {

[self.navigationController.navigationBar lt_setBackgroundColor:[LE_BLUE_COLORcolorWithAlphaComponent:al]];

}else{

[self.navigationController.navigationBar lt_setBackgroundColor:[LE_BLUE_COLORcolorWithAlphaComponent:1]];

}

_topView.hidden=NO;

[self.navigationController.navigationBar setShadowImage:[UIImage imageNamed:@"touming"]];

//開啟定時(shí)器

[_myTimer setFireDate:[NSDate distantPast]];

}

好了,直接改成這樣就不用再亂設(shè)置什么東西了,不然當(dāng)你剛滑動(dòng)到半透明的時(shí)候還會(huì)出現(xiàn)坑爹的問題,改這玩意改了一周多,遇到蛋疼問題不計(jì)其數(shù)。。。

還有

- (void)viewDidAppear:(BOOL)animated

{

[superviewDidAppear:animated];

if(!_isShowCollect) {

CGFloatyOffset =zoneTableView.contentOffset.y;

floatal = (yOffset+IMAGEHEIGHT)/IMAGEHEIGHT;

if(al <= 1) {

[self.navigationController.navigationBar lt_setBackgroundColor:[LE_BLUE_COLORcolorWithAlphaComponent:al]];

}else{

[self.navigationController.navigationBar lt_setBackgroundColor:[LE_BLUE_COLORcolorWithAlphaComponent:1]];

}

_topView.hidden=NO;

[self.navigationController.navigationBar setShadowImage:[UIImage imageNamed:@"touming"]];

[self.navigationController.navigationBar setShadowImage:[UIImage imageNamed:@"touming"]];

}

}

這個(gè)是其他頁面遇到的問題,不想說什么了,我想靜靜,好累好累。。。

參考例子http://tech.glowing.com/cn/change-uinavigationbar-backgroundcolor-dynamically/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1,Search Bar 怎樣去掉背景的顏色(storyboard里只能設(shè)置background顏色,可是發(fā)現(xiàn)cl...
    以德扶人閱讀 2,889評(píng)論 2 50
  • 1.NSString過濾特殊字符串定義一個(gè)特殊字符的集合NSCharacterSet set = [NSChara...
    奮拓達(dá)閱讀 942評(píng)論 0 0
  • 許文惠推著滿載的購物車在路邊打車,購物車?yán)镉袃纱?,兩桶油,還有各種零食,估計(jì)有上百斤,許文惠推得很用力。路人都用...
    青如許閱讀 575評(píng)論 0 8
  • 如果可以 我希望世界除了黑 就只剩下白 我厭惡灰色 糾扯在黎明之前 辨不清敵友 像寒冬散不去的迷霧 咫尺之間又隔著...
    不喜灰閱讀 189評(píng)論 0 2
  • 讀書隨感: 可憐的格里高尓。溫柔善良聰慧的妹妹最后卻成了最想要終結(jié)他命運(yùn)的劊子手。敦厚忠誠的性格反而被拋棄,原有的...
    Vesper_Xiao閱讀 294評(píng)論 0 3

友情鏈接更多精彩內(nèi)容