导航栏iOS Developer

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

2016-10-28  本文已影响190人  朱Younger

现在很多社交类的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;

}
上一篇 下一篇

猜你喜欢

热点阅读