微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在iOS中拖动时如何修改UIVisualEffectView的模糊性?

目前,我正在使用UIVisualEffectView将模糊应用于图像.

我有一个UIScrollView.当我下拉scrollView时,在我的“scrollViewDidScroll”方法中,我正在更改UIVisualEffectView的alpha.当前的行为是当我在视图中拖动时,模糊半径平滑变化.

问题是,当然,我不应该这样做.获取有关更改UIVisualEffectView的Alpha值的警告.

我见过人们说使用动画进行模糊的平滑过渡,如下所示:How to fade a UIVisualEffectView and/or UIBlurEffect in and out?

但是,我没有看到任何允许我在此期间执行此操作的内容,例如泛手势或其他内容.我的意思是,如果我设置一个定时量的动画,那一切都很好.但是在拖延期间这样做?

解决方法

有一种方法 :)

正如您所注意到的,您可以从零效果动画到像UIBlurEffectStyleDark这样的效果,因此如果我们添加动画然后暂停图层的动画,我们可以通过调整图层的timeOffset来控制效果的进度!

- (void) setupBlur {
    // Setup the blur to start with no effect
    self.blurredEffectView = [[UIVisualEffectView alloc] initWithEffect:nil];

    // Add animation to desired blur effect
    [UIView animateWithDuration:1.0 animations:^{
        [self.blurredEffectView setEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]];
    }];

    // Pause layer animations
    self.blurredEffectView.layer.speed = 0;
}

调整0.0到1.0之间的模糊(动画持续时间):

- (void) adjustBlur:(CGFloat)blurIntensity {
    self.blurredEffectView.layer.timeOffset = blurIntensity;
}

>注意:这不适用于不支持UIBlurEffect动画的iOS 8.

原文地址:https://www.jb51.cc/iOS/328257.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐