navigationBar渐变效果的实现

一、说明

这篇文章简单记录在开发中遇到的小问题,向上滑动tableView时,navigationBar出现渐变效果,但navigationBar上面的文字能正常显示!效果图如下:



二、思路:

由于tableView继承自scrollView,所以在可以在- (void)scrollViewDidScroll:(UIScrollView *)scrollView方法中,确定一个比例,根据比例改变颜色透明度

例如:CGFloat scrollY = scrollView.contentOffset.y;

// 确定比例

CGFloat scale = (30 +64 - scrollY) / 64;

三、具体步骤

1.为便于复用,可以给UINavigationBar创建一个分类,在分类的.h文件中提供一个改变透明度颜色的方法:- (void)changeNavigationBarAlphaWith:(UIColor *)color和一个改变透明度的view(插在navigationBar上):@property(nonatomic,strong)UIView *alphaView;由于分类中添加属性不会生成setter和getter方法,所以运用运行时实现set和get方法;

2.实现- (void)changeNavigationBarAlphaWith:(UIColor *)color方法,在此方法中实现如下:

3.在需要使用的地方导入分类头文件,在- (void)scrollViewDidScroll:(UIScrollView *)scrollView作如下实现:

完成

你可能感兴趣的:(navigationBar渐变效果的实现)