#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"]];
}
}