現(xiàn)在很多社交類的App扁瓢,個(gè)人主頁(yè)都有諸多的相似之處详恼,無非是可以放大的圖片+TableView顯示用信息+上下滑動(dòng)改變NavgationgBar 的顏色透明度。
好引几,廢話不多說直接上代碼:github地址:https://github.com/zhufaming/FMHomePage
下面我就主要的技術(shù)思路說一下:
1昧互、實(shí)現(xiàn)思路:透明的tableViewHeader + tableView 底部的topImgView
2、功能特點(diǎn):tableView 向上滑動(dòng)底層圖片要能跟著滾動(dòng)伟桅,向下拉升底層圖片要能放大而敞掘。y坐標(biāo)不變
3、代碼分析:
設(shè)置NavigationgBar透明:
[[[self.navigationController.navigationBar subviews] objectAtIndex:0] setAlpha:_alphaMemory];
滾動(dòng)代理:
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;
}