iOS系统SDK实现毛玻璃效果(swift版 iOS8.0及其以上)

来源:互联网 发布:淘宝c店运营 编辑:程序博客网 时间:2024/04/28 05:15

iOS系统SDK实现毛玻璃效果(swift版)系统的毛玻璃效果  iOS8.0才加上的 ,之前的只有自定义或者使用第三方了

import UIKitclass ScrollTestController: UIViewController {        var  scrollView:UIScrollView!    var  dataArray = NSMutableArray()        // 懒加载    lazy var lasyEffectView:UIVisualEffectView = {        // iOS8 系统才有        let tempEffectView = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Light))        tempEffectView.frame = self.view.bounds;        tempEffectView.alpha = 0.8        // 添加手势        let tap = UITapGestureRecognizer(target: self, action: Selector("effectViewTouch:"))        tempEffectView.addGestureRecognizer(tap)        return tempEffectView    }()        override func viewDidLoad() {        super.viewDidLoad()                self.title = "UIScrollView"        // 添加nav右侧按钮        self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "毛玻璃", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("showEffectView"))                // UIScrollView        self.dataArray = ["1.jpg","2.jpg","3.jpg","4.jpg","IMG_0542.jpg"];        self.scrollView = UIScrollView(frame: self.view.bounds)        self.scrollView.pagingEnabled = true        self.scrollView.userInteractionEnabled = true;        self.scrollView.showsHorizontalScrollIndicator = false;        self.scrollView.backgroundColor = UIColor.whiteColor()                for var i = 0; i < 5 ;i++ {                        let X = self.scrollView.frame.size.width * CGFloat(i)                        var imgView = UIImageView(frame: CGRectMake(X, 0, self.scrollView.frame.size.width, self.scrollView.frame.size.height))            imgView.contentMode = UIViewContentMode.ScaleToFill            imgView.image = UIImage(named: (self.dataArray[i] as? String)!)                        self.scrollView.addSubview(imgView)                    }                self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * 5.0, 0.0)        self.view.addSubview(self.scrollView)    }        func showEffectView() {        // 点击显示毛玻璃的判断                if (lasyEffectView.superview != nil) {            lasyEffectView.removeFromSuperview()        }else{            self.view.addSubview(lasyEffectView)        }    }        func effectViewTouch(tap:UITapGestureRecognizer) {        // 移除毛玻璃        if (lasyEffectView.superview != nil) {            lasyEffectView.removeFromSuperview()        }    }        override func didReceiveMemoryWarning() {        super.didReceiveMemoryWarning()    }   }

效果:

正常:

毛玻璃效果:

0 0
原创粉丝点击