SWIFT 2.xの:利便性のうち
、私は私は基本的に、すぐに次のコードを持つ色としてそれを使用できるようにするUIImage()
を拡張しました。
extension UIImage {
class func imageWithColor(color: UIColor) -> UIImage {
let rect = CGRectMake(0, 0, 1.0, 0.5)
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0)
color.setFill()
UIRectFill(rect)
let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
}
次は、このインスタンスでのViewControllerのUINavigationBar
の影の画像、または色を調整するために、あなたのコードに次の行を追加したいと思うでしょう。
// Sets Bar's Background Image (Color) //
self.navigationController?.navigationBar.setBackgroundImage(UIImage.imageWithColor(UIColor.blueColor()), forBarMetrics: .Default)
// Sets Bar's Shadow Image (Color) //
self.navigationController?.navigationBar.shadowImage = UIImage.imageWithColor(UIColor.redColor())
SWIFT 3.xの/ 4.xの:
拡張コード:
extension UIImage {
class func imageWithColor(color: UIColor) -> UIImage {
let rect = CGRect(x: 0.0, y: 0.0, width: 1.0, height: 0.5)
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)
color.setFill()
UIRectFill(rect)
let image : UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}
}
NavigationBarコード:
// Sets Bar's Background Image (Color) //
navigationController?.navigationBar.setBackgroundImage(UIImage.imageWithColor(color: .blue), for: .default)
// Sets Bar's Shadow Image (Color) //
navigationController?.navigationBar.shadowImage = UIImage.imageWithColor(color: .red)
編集1:
あなたはUIImage
色の不透明度を変更することなく、矩形サイズを調整することができるように拡張コードを更新。
編集2:
追加さスウィフト3 +スイフト4コード。
影の画像がまだ存在するので、あなたは 'UINavigationBar.appearance()。shadowImage = ...を行う必要があります'Swiftで – dan
誰もが自動補完がshadowImageを表示しない理由を知っていますか? (しかし実際には存在します) – TIMEX
これは 'UINavigationBar.appearance()'でアクセスできないためです。 – ZGski