标签:ios uinavigationbar 透明度 alpha swift
如何实现这个半透明效果呢?
步骤一:
为UIImage类添加静态方法:
extension UIImage {
static func imageWithColor(color: UIColor) -> UIImage {
let rect = CGRect(x: 0, y: 0, width: 1, height: 1)
UIGraphicsBeginImageContext(rect.size)
let context = UIGraphicsGetCurrentContext()
CGContextSetFillColorWithColor(context, color.CGColor)
CGContextFillRect(context, rect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
}步骤二:
创建一定透明度的UIColor
let semiBlackColor = UIColor(red:0,green:0,blue:0,alpha:0.5)
步骤三:
设置状态栏和导航栏的透明度:
navigationController?.navigationBar.setBackgroundImage(UIImage.imageWithColor(semiBlackColor), forBarMetrics: .Default) navigationController?.navigationBar.translucent = true // 一定要设置为true
动态改变该透明度可以通过UIScrollViewDelegate来实现:
func scrollViewDidScroll(scrollView: UIScrollView) {
// 监听UIScrollView的属性contentOffset。
if scrollView.contentOffset.y > 100 {
// ...
}
}
注:此方法只适用于iOS7及以上。
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:ios uinavigationbar 透明度 alpha swift
原文地址:http://blog.csdn.net/tounaobun/article/details/46866965