滚动时对 TableViewCell 的模糊效果

Posted

技术标签:

【中文标题】滚动时对 TableViewCell 的模糊效果【英文标题】:Blur Effect on TableViewCell when scroll 【发布时间】:2015-06-10 22:44:41 【问题描述】:

现在我正在使用LBBlurredImage 来模糊图像,但我想改为ios8UIVisualEffectView 来模糊

我很难实施,有什么想法吗?

LBBLurredImage实现:

- (void)updateData 
    // Set up Screen
    self.screenHeight = [UIScreen mainScreen].bounds.size.height;
    //UIImage *background = [UIImage imageNamed:@"gray"];
    UIImage *background = [UIImage imageNamed:backgroundImageGlobal];

    // Background Image
    self.backgroundImageView = [[UIImageView alloc] initWithImage:background];
    self.backgroundImageView.contentMode = UIViewContentModeScaleAspectFill;
    [self.view addSubview:self.backgroundImageView];

    // Background Image Blurred
    self.blurredImageView = [[UIImageView alloc] init];
    self.blurredImageView.contentMode = UIViewContentModeScaleAspectFill;
    self.blurredImageView.alpha = 0.0; // 0.0
    [self.blurredImageView setImageToBlur:background blurRadius:10 completionBlock:nil]; // blurRadius:10
    [self.view addSubview:self.blurredImageView];


- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
    CGFloat height = scrollView.bounds.size.height;
    CGFloat position = MAX(scrollView.contentOffset.y, 0.0);
    CGFloat percent = MIN(position / height, 1.0);
    self.blurredImageView.alpha = percent;

到目前为止,我在之前的代码中添加/更改的最好的镜头,使用UIVisualEffectView 实现:

// iOS8
@property (nonatomic) UIVisualEffect *blurEffect;
@property (nonatomic) UIVisualEffectView *visualEffectView;

// iOS8 Blur
self.blurredImageView = [[UIImageView alloc] init];
self.blurredImageView.contentMode = UIViewContentModeScaleAspectFill;
self.blurredImageView.alpha = 0.0;
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
UIVisualEffectView *visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
visualEffectView.frame = self.blurredImageView.bounds;
[self.blurredImageView addSubview:visualEffectView];
[self.view addSubview:self.blurredImageView];

【问题讨论】:

【参考方案1】:

我想通了。我用过:

// iOS8 Blur
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
self.visualEffectViewGlobal = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
self.visualEffectViewGlobal.frame = self.view.bounds;
self.visualEffectViewGlobal.alpha = 0.0;
[self.view addSubview:self.visualEffectViewGlobal];

【讨论】:

以上是关于滚动时对 TableViewCell 的模糊效果的主要内容,如果未能解决你的问题,请参考以下文章

在滚动上使用 css 和 jQuery 创建模糊效果

在 WKWebView 上滚动时 UINavigationBar/UIVisualEffectView 的模糊半透明效果?

使用 FBSDKApplicationDelegate 时对成员“下标”的模糊引用

重新加载集合视图数据时对成员 'collectionView(_:numberOfItemsInSection:)' 的模糊引用

在 tableviewcell 内滚动时防止 tableview 滚动

Swift:动态更改 TableViewCell 高度和动态更改 WebView 高度