Swift导航栏图像标题
我几个星期前开始在Swift编程。 现在我想定制我的Apps Look。 我想使用标志图像作为导航栏标题而不是明文。
let logo = UIImage(named: "logo.png") self.navigationItem.titleView = logo;
我得到错误"UIImage is not convertible to UIView"
我search了很多。 但没办法:(
把它放在一个UIImageView
里面
let logo = UIImage(named: "logo.png") let imageView = UIImageView(image:logo) self.navigationItem.titleView = imageView
我用这个 它适用于iOS 8
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. let image = UIImage(named: "YOURIMAGE") navigationItem.titleView = UIImageView(image: image) }
这里是一个例子,你可以用CGRect来做到这一点。
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 38, height: 38)) imageView.contentMode = .ScaleAspectFit let image = UIImage(named: "YOURIMAGE") imageView.image = image navigationItem.titleView = imageView }
希望这会有所帮助。
你可以使用自定义的UINavigationItem,所以你只需要在Main.storyboard上将YourCustomClass改为“Navigation Item”。
在Swift 3
class FixedImageNavigationItem: UINavigationItem { private let fixedImage : UIImage = UIImage(named: "your-header-logo.png")! private let imageView : UIImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 50, height: 37.5)) required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) let tView = imageView tView.contentMode = .scaleAspectFit tView.image = fixedImage self.titleView = tView } }
这在2015年9月为我工作 – 希望这可以帮助那里的人。
// 1 var nav = self.navigationController?.navigationBar // 2 set the style nav?.barStyle = UIBarStyle.Black nav?.tintColor = UIColor.yellowColor() // 3 let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 40, height: 40)) imageView.contentMode = .ScaleAspectFit // 4 let image = UIImage(named: "logo.png") imageView.image = image // 5 navigationItem.titleView = imageView
let image = UIImage(named: "Navbar_bg.png") navigationItem.titleView = UIImageView(image: image) let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 40, height: 40)) imageView.contentMode = .ScaleAspectFit
对于迅速4,你可以调整imageView的大小
let logoContainer = UIView(frame: CGRect(x: 0, y: 0, width: 270, height: 30)) let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 270, height: 30)) imageView.contentMode = .scaleAspectFit let image = UIImage(named: "your_image") imageView.image = image logoContainer.addSubview(imageView) navigationItem.titleView = logoContainer