導航欄漸變

#pragma mark -- 配置導航欄 - (void )configNavi{ self.navigationItem.leftBarButtonItem = nil; UIButton *RightBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 35, 35)]; [RightBtn setImage:[UIImage imageNamed:@"setup"] forState:UIControlStateNormal]; UIBarButtonItem *RightBarButton = [[UIBarButtonItem alloc] initWithCustomView:RightBtn]; [RightBtn addTarget:self action:@selector(setting) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.rightBarButtonItem = RightBarButton; UIImageView *imgView = [self findHairlineImageViewUnder:self.navigationController.navigationBar]; imgView.hidden = YES; } //通過一個方法來找到這個黑線(findHairlineImageViewUnder): - (UIImageView *)findHairlineImageViewUnder:(UIView *)view { if ([view isKindOfClass:UIImageView.class] && view.bounds.size.height <= 1.0) { return (UIImageView *)view; } for (UIView *subview in view.subviews) { UIImageView *imageView = [self findHairlineImageViewUnder:subview]; if (imageView) { return imageView; } } return nil; } #pragma mark - UIScrollViewDelegate - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if ([scrollView isEqual:_aTableView]) { CGFloat offsetY = scrollView.contentOffset.y; if (offsetY>0) { CGFloat alpha = offsetY/64; self.navigationItem.title = @"我的"; [self setNeedsNavigationBackground:alpha]; } else { self.navigationItem.title = @""; [self setNeedsNavigationBackground:0.0]; } } } - (void)setNeedsNavigationBackground:(CGFloat)alpha { // 導航欄背景透明度設置 UIView *barBackgroundView = [[self.navigationController.navigationBar subviews] objectAtIndex:0];// _UIBarBackground UIImageView *backgroundImageView = [[barBackgroundView subviews] objectAtIndex:0];// UIImageView if (self.navigationController.navigationBar.isTranslucent) { if (backgroundImageView != nil && backgroundImageView.image != nil) { barBackgroundView.alpha = alpha; } else { UIView *backgroundEffectView = [[barBackgroundView subviews] objectAtIndex:1];// UIVisualEffectView if (backgroundEffectView != nil) { backgroundEffectView.alpha = alpha; } } } else { barBackgroundView.alpha = alpha; } }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章