iOS开发 - 毛玻璃效果

效果展示

这里写图片描述

Objective-C代码实现

#import "ViewController.h"

@interface ViewController () {

    // 实现模糊效果类
    UIVisualEffectView *_visualEffectView;
}

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self initializeUserInterface];
}

- (void)initializeUserInterface {

    self.view.backgroundColor = [UIColor whiteColor];

    // 添加图片视图
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.frame];
    imageView.image = [[UIImage imageNamed:@"image.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    imageView.contentMode = UIViewContentModeScaleAspectFit;
    imageView.userInteractionEnabled = YES;
    [self.view addSubview:imageView];

    // 滑条
    UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(10, CGRectGetMaxY(self.view.bounds) - 50, CGRectGetWidth(self.view.bounds) - 20, 30)];
    slider.maximumValue = 1.0;
    slider.minimumValue = 0.0;
    slider.value  = 1.0;
    [slider addTarget:self
               action:@selector(respondsToSlider:)
     forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:slider];

    // 实现模糊效果
    UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
    _visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blur];
    _visualEffectView.frame = self.view.frame;
    _visualEffectView.alpha = 1.0;
    _visualEffectView.userInteractionEnabled = YES;
    [imageView addSubview:_visualEffectView];

}

#pragma mark - event methods

- (void)respondsToSlider:(UISlider *)slider {

    _visualEffectView.alpha = slider.value;
}

@end

Swfit代码实现

import UIKit

class ViewController: UIViewController {

    var visualEffectView: UIVisualEffectView?

    override func viewDidLoad() {
        super.viewDidLoad()
        self.initializeUserInterface()
    }

    func initializeUserInterface() {

        // 添加图片视图
        let imageView = UIImageView(frame: self.view.frame)

        imageView.image = UIImage(named: "image.png")

        self.view.addSubview(imageView)

        // 添加化滑条
        let slider = UISlider(frame: CGRectMake(10, CGRectGetMaxY(self.view.bounds) - 50, CGRectGetWidth(self.view.bounds) - 20, 30))
        slider.maximumValue = 1.0
        slider.minimumValue = 0.0
        slider.value = 1.0
        slider.addTarget(self, action: Selector("respondsToSlider:"), forControlEvents: UIControlEvents.ValueChanged)
        self.view.addSubview(slider)

        // 实现模糊效果

        let blur = UIBlurEffect(style: UIBlurEffectStyle.Light)

        self.visualEffectView = ({
            let visualEffectView = UIVisualEffectView(effect: blur)
            visualEffectView.frame = imageView.frame
            visualEffectView.userInteractionEnabled = true
            visualEffectView.tag = 100
            visualEffectView.alpha = 1.0
            return visualEffectView
        })()
        imageView.addSubview(self.visualEffectView!)

    }

    func respondsToSlider(sender: UISlider) {
        self.visualEffectView?.alpha = CGFloat(sender.value)
    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值