您的位置:首页 > 移动开发 > Swift

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

2015-08-28 16:56 573 查看
iOS系统SDK实现毛玻璃效果(swift版)系统的毛玻璃效果 iOS8.0才加上的 ,之前的只有自定义或者使用第三方了

import UIKit

class 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()

}

}


效果:

正常:


毛玻璃效果:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: