美文网首页
模糊效果,下拉放大

模糊效果,下拉放大

作者: LearningCoding | 来源:发表于2016-06-08 12:16 被阅读78次

    上一篇说了如何将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);
            
        }
    }```

    相关文章

      网友评论

          本文标题:模糊效果,下拉放大

          本文链接:https://www.haomeiwen.com/subject/ksdjdttx.html