上一篇说了如何将navigationBar隐藏,本篇讲怎么才能让头部模糊
iOS8以后系统给我们提供了模糊效果UIVisualEffectView和UIBlurEffect
UIBlurEffect *beffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:beffect];
effectView.frame = self.tableViewHeaderImageView.frame;
[self.WTableView.tableHeaderView addSubview:effectView];
iOS7以前怎么做呢,我们使用第三方JCRBlurView
JCRBlurView *blurView = [[JCRBlurView alloc] init];
blurView.frame = self.tableViewHeaderImageView.frame;
[blurView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
[self.WTableView.tableHeaderView addSubview:blurView];
模糊效果实现了,那下拉放大呢
我们通常会给给Tableview设置一个tableHeaderView
UIView *tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, WScreenWidth, 225)];
self.WTableView.tableHeaderView = tableHeaderView;
然后在上面放一个ImageView
self.tableViewHeaderImageView = [[UIImageView alloc] init];
self.tableViewHeaderImageView.frame = tableHeaderView.bounds;
self.tableViewHeaderImageView.image = [UIImage imageWithColor:[UIColor blueColor]];
[tableHeaderView addSubview:self.tableViewHeaderImageView];
准备工作已经做好,接下来你只需要给Tableview设置一个代理,实现下面代理方法就好了,然后改变上面的视图的frame,就能实现下拉放大的效果了
#pragma mark --- uiscrollViewdelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (self.WTableView.contentOffset.y < 0) {
if ([[WXHelp getPhoneVersion] floatValue] >= 8.0) {
self.effectView.frame = CGRectMake(0, self.WTableView.contentOffset.y, WScreenWidth, self.WTableView.tableHeaderView.frame.size.height - self.WTableView.contentOffset.y);
} else {
self.blurView.frame = CGRectMake(0, self.WTableView.contentOffset.y, WScreenWidth, self.WTableView.tableHeaderView.frame.size.height - self.WTableView.contentOffset.y);
}
self.tableViewHeaderImageView.frame = CGRectMake(-(WScreenWidth * (self.WTableView.tableHeaderView.frame.size.height - self.WTableView.contentOffset.y) / self.WTableView.tableHeaderView.frame.size.height - WScreenWidth) / 2, self.WTableView.contentOffset.y, WScreenWidth * (self.WTableView.tableHeaderView.frame.size.height - self.WTableView.contentOffset.y) / self.WTableView.tableHeaderView.frame.size.height, self.WTableView.tableHeaderView.frame.size.height - self.WTableView.contentOffset.y);
}
}```
网友评论