美文网首页导航栏iOS Developer
QQ个人主页,NavigationBar 颜色透明渐变

QQ个人主页,NavigationBar 颜色透明渐变

作者: 朱Younger | 来源:发表于2016-10-28 09:59 被阅读190次

现在很多社交类的App,个人主页都有诸多的相似之处,无非是可以放大的图片+TableView显示用信息+上下滑动改变NavgationgBar 的颜色透明度。

好,废话不多说直接上代码:github地址:https://github.com/zhufaming/FMHomePage

下面我就主要的技术思路说一下:

1、实现思路:透明的tableViewHeader + tableView 底部的topImgView

2、功能特点:tableView 向上滑动底层图片要能跟着滚动,向下拉升底层图片要能放大而。y坐标不变

3、代码分析:
设置NavigationgBar透明:

[[[self.navigationController.navigationBar subviews] objectAtIndex:0] setAlpha:_alphaMemory];

滚动代理:

CGFloat offsetY = scrollView.contentOffset.y;

CGRect frame=self.topImgV.frame;

if (offsetY>=0) {

frame.origin.y=-offsetY;

//重新赋值 frame

self.topImgV.frame=frame;

if (offsetY<=300) {

self.navigationController.navigationBar.tintColor = [UIColor blackColor];

_alphaMemory = offsetY/(300) >= 1 ? 1 : offsetY/(300);

[[[self.navigationController.navigationBar subviews] objectAtIndex:0] setAlpha:_alphaMemory];

}else if (offsetY>300){

_alphaMemory = 1;

[[[self.navigationController.navigationBar subviews] objectAtIndex:0] setAlpha:1];

}
}else{

_topImgV.transform =  CGAffineTransformMakeScale(1 + offsetY/(-300), 1 + offsetY/(-300));

CGRect frame1=self.topImgV.frame;

frame1.origin.y = 0;

self.topImgV.frame=frame1;

}

相关文章

网友评论

  • 朱Younger:欢迎评论建议
    郑一一一一:@云梦众生 就是我从 一个有导航栏的 跳进要隐藏 导航栏的页面 ,切换过程 会有黑边
    朱Younger:@啊啦哈 没有点击进入功能啊,截图看一下,简信
    郑一一一一:@云梦众生 点击进入的时候 ,有黑边 如何解决? 请问下

本文标题:QQ个人主页,NavigationBar 颜色透明渐变

本文链接:https://www.haomeiwen.com/subject/fuasuttx.html