我试图在我的NavigationBar中增加一些透明度,但没有成功。在我的AppDelegate's didFinishLaunchingWithOptions中,我有以下代码行:
let navigationBarAppearance = UINavigationBar.appearance()
navigationBarAppearance.barTintColor = UIColor.blueColor().colorWithAlphaComponent(0.2)
navigationBarAppearance.translucent = true但是,不管alpha成分是什么,透明度都不会改变。我甚至尝试使用彩色UIImage
let colorImage = UIImage.imageFromColor(UIColor.blueColor().colorWithAlphaComponent(0.2), frame: CGRect(x: 0, y: 0, width: 340, height: 64))
navigationBarAppearance.setBackgroundImage(colorImage, forBarMetrics: .Default)该方法也不会改变导航栏的透明度。在视图控制器中,我尝试:
self.navigationController?.navigationBar.tintColor = UIColor.blueColor()
self.navigationController?.navigationBar.alpha = 0.2
self.navigationController?.navigationBar.translucent = true但还是没有运气。有人能帮我弄清楚我如何为我的导航栏增加透明度吗?
发布于 2015-11-12 18:39:34
给你伙计。只需遵循以下步骤
首先做一个扩展类。只添加一个新的空快捷文件,并将其命名为UIImageExtension或任何您感觉的
在该扩展名中编写以下代码
import Foundation
import UIKit
extension UIImage{
static func imageFromColor(color: UIColor) -> UIImage {
let rect = CGRectMake(0, 0, 1, 1)
// create a 1 by 1 pixel context
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0)
color.setFill()
UIRectFill(rect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
}现在转到您的ViewController类,编写以下代码,并使用alpha。就是这样。
let image = UIImage.imageFromColor(UIColor(red: 0.071, green: 0.071, blue: 0.922, alpha: 0.2))
self.navigationController?.navigationBar.setBackgroundImage(image, forBarMetrics: UIBarMetrics.Default)
self.navigationController?.navigationBar.barStyle = .DefaultSwift 3.0
import Foundation
import Foundation
import UIKit
extension UIImage{
static func imageFromColor(color: UIColor) -> UIImage {
let rect = CGRect(x: 0, y: 0, width: 1, height: 1)
// create a 1 by 1 pixel context
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0)
color.setFill()
UIRectFill(rect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image!
}
}使用
let image = UIImage.imageFromColor(color: UIColor(red: 0.071, green: 0.071, blue: 0.922, alpha: 0.2))
self.navigationController?.navigationBar.setBackgroundImage(image, for: UIBarMetrics.default)
self.navigationController?.navigationBar.barStyle = .default我还做了一个样本。看一看。示例在Swift 2.x版本中
https://github.com/RajanMaheshwari/TransparentNav
希望能帮上忙!
编辑:刚刚将导航条更改为半透明,并且工作正常

屏幕截图

发布于 2015-11-12 17:51:48
在上一个示例中,您更改了tintColor,而不是barTintColor。无论如何,这三条线应该能用:
self.navigationController?.navigationBar.barTintColor = UIColor.greenColor()
self.navigationController?.navigationBar.alpha = 0.2
self.navigationController?.navigationBar.translucent = true但是请记住,它将更改整个导航控制器的条条,因此您必须在从该视图控制器返回时考虑它。
https://stackoverflow.com/questions/33677706
复制相似问题