iosnavigationbar渐变的简单实现
来源:互联网 发布:收趣云书签 mac 编辑:程序博客网 时间:2024/06/14 09:51
最近在项目里遇到一个和扣扣空间里类似的一个需求,就是刚开始navigatiobbar透明,然后往下拉的时候慢慢的变不透明,后来在网上找了很多资料,但是都实现的太麻烦,后来我一个朋友做过类似的,受她启发,做了一个简单的渐变,希望对大家有帮助。
首先我们肯定要使导航栏透明,这个我网上也看了许多,实现的逼格都太高好麻烦,其实两句代码搞定~
//对navigationbar透明 [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; //这个是去除下面的黑线 [self.navigationController.navigationBar setShadowImage:[UIImage new]];当然还有一点需要注意,就是有导航栏的时候,tableview会自动向下偏移64,然后我网上查了资料,又是各种逼格各种原理,好吧我加了一句代码就好了。。。
self.automaticallyAdjustsScrollViewInsets = NO;那么怎么实现渐变呢,大家会想到根据tableview的竖直偏移量来不断改变alpha,对啊我就是这么实现的
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ CGFloat offset=scrollView.contentOffset.y; if (offset < 30) { self.navigationController.navigationBar.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0]; statusView.backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent:0]; }else { self.alpha = (myTableView.contentOffset.y - 30)/75; statusView.backgroundColor = [UIColor colorWithRed:155 green:155 blue:155 alpha:self.alpha]; self.navigationController.navigationBar.backgroundColor = [UIColor colorWithRed:155 green:155 blue:155 alpha:self.alpha]; }}UITableView继承于UIScrollVIew,于是我们在上面这个方法里写出透明度的改变算法。当然大家会问statusView是什么鬼,这个是状态栏,为神马要设置状态栏呢,大家把带有statusView的代码行给删除掉,就明白了。
statusView.backgroundColor = [UIColor colorWithRed:155 green:155 blue:155 alpha:self.alpha]; self.navigationController.navigationBar.backgroundColor = [UIColor colorWithRed:155 green:155 blue:155 alpha:self.alpha];大概实现的原理就这样了,很简单,如果要做其他的一些需求,在这些的基础上修改修改就完事了。写的不好的地方大家可以批评指出,希望给大家点启发,欢迎大家来交流,qq群:410033829。
.
0 1
- iosnavigationbar渐变的简单实现
- Unity简单的声音切换渐变实现
- Android按钮的渐变色的简单实现
- imageview设置transitionDrawable实现简单的颜色渐变动画
- Android简单实现一个颜色渐变的ProgressBar
- CSS渐变的简单使用
- iOS简单实现图片模糊渐变效果
- CSS实现简单动态渐变闪烁效果
- css3移动端简单的背景渐变和文字渐变
- 表格背景渐变的实现
- VB中渐变的实现
- div渐变背景的实现
- css渐变效果的实现
- 实现文字渐变的效果
- 渐变色的实现方式
- 实现渐变色的JProgressBar
- 渐变色的背景实现
- 标题栏渐变的效果实现
- 详解Android App卡顿优化问题
- UIViewController的生命周期
- Activity与Fragment的通信方式
- ComponentOne Studio基于最新的界面设计技术
- 何为android的性能优化?
- iosnavigationbar渐变的简单实现
- Java中文件的读写操作
- C语言与汇编语言相互调用原理以及实例
- 用libpcap打开读取cap文件
- 常用的数据库查询语言
- 龙贝格积分法C++11实现
- JAVA FX 对UI组件的控制问题
- Convolutional neural networks(CNN) (十) Learning color features with Sparse Autoencoders Exercise
- Rsync + inotify 实现数据的实时同步