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