下拉headerView 按比例变大,上滑NavigationBar颜色渐变

一,下拉比例变大
1.在headerView中 设置:
//视图按比例填充
_topImageView.contentMode = UIViewContentModeScaleAspectFill;

2.在代理方法中

pragma mark -ScrollView Delegate

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGFloat offsetY = scrollView.contentOffset.y;
//负为下拉,正为上滑
if (offsetY < -20) {
// 第一步:取到原图的 fram
CGRect imageFram = _topImageView.frame;
//第二步:设置 头视图 的 y 为偏移量 (偏移量代表下拉了多少)
imageFram.origin.y = offsetY;
//第三步:设置高度变化,因为是负的 所以 需要 减 ,300为当前视图高度[变化高度 = 图高 + 偏移量]
imageFram.size.height = 300 - offsetY;
//第四步 将变化后的fram 传给视图 进行修改
_topImageView.frame = imageFram;
}

}

二,上滑导航渐变

ps: navigationBar变为纯透明
//第一种方法
//导航栏纯透明
[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
//去掉导航栏底部的黑线
self.navigationBar.shadowImage = [UIImage new];
//第二种方法
[[self.navigationBar subviews] objectAtIndex:0].alpha = 0;

ps :
UIColor *color = [UIColor blackColor];
color = [color colorWithAlphaComponent:0.6];
self.view.backgroundColor = color;
在改变父视图背景颜色的时候,应用上面的方法.这样 再添加子视图的时候,子视图就不会改变透明度了

你可能感兴趣的:(下拉headerView 按比例变大,上滑NavigationBar颜色渐变)