[self.navigationController.navigationBar lt_setBackgroundColor:[LE_BLUE_COLORcolorWithAlphaComponent:al]];
#pragma mark - UIScrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//下拉隱藏頭部
if (scrollView == self.zoneTableView) {
constantHeaderView.hidden = scrollView.contentOffset.y > -128? NO:YES;
}
//下拉伸伸圖片
CGFloat yOffset = scrollView.contentOffset.y+64; //如果有導航控制器,這裏應該加上導航控制器的高度64
if (yOffset < -IMAGEHEIGHT) {
CGRect frame = _zoomImageView.frame;
frame.origin.y = yOffset;
frame.size.height = -yOffset;
_zoomImageView.frame = frame;
}
//下拉刷新
if (yOffset < -IMAGEHEIGHT-60) {
[self refreshNuNuZoneInfo];
}
//下拉改變導航條的顏色
float al =(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]];
}
}
最下面這段就是,其他的可以當作沒看見,之前有說過下拉拉伸圖片和下拉刷新出現實踐衝突的,就在這裏解決。
下面就開始解決坑爹的玩意兒了,首先,當你點擊cell跳轉的時候你會發現其他頁面的,你會發現其他頁面的導航條變色了 0.0 你能說什麼呢,改!
- (void)viewDidDisappear:(BOOL)animated
{
[[BaiduMobStat defaultStat] pageviewEndWithName:@"關注"];
[super viewDidDisappear:animated];
[self.navigationController.navigationBar lt_setBackgroundColor:[LE_BLUE_COLORcolorWithAlphaComponent:1]];
_topView.hidden = YES;
}
在這個頁面消失的時候 讓導航條不透明,好了,解決了 。。。
然後繼續滑動,然後跳轉,好了下一頁顏色沒變化,但是!!!返回來之後怎麼又透明瞭???,爲什麼呢,原來是在viewwill 裏面設置的關係,真扯淡,改改!
-(void)viewWillAppear:(BOOL)animated{
CGFloat yOffset = zoneTableView.contentOffset.y+64;
float al = (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"]];
//開啓定時器
[_myTimer setFireDate:[NSDate distantPast]];
}
好了,直接改成這樣就不用再亂設置什麼東西了,不然當你剛滑動到半透明的時候還會出現坑爹的問題,改這玩意改了一週多,遇到蛋疼問題不計其數。。。
還有
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if (!_isShowCollect) {
CGFloat yOffset = zoneTableView.contentOffset.y;
float al = (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"]];
}
}
這個是其他頁面遇到的問題,不想說什麼了,我想靜靜,好累好累。。。
參考例子 http://tech.glowing.com/cn/change-uinavigationbar-backgroundcolor-dynamically/