目前这是我所拥有的:
override func viewDidLoad() {
super.viewDidLoad()
self.setNavigationBar()
}
func setNavigationBar() {
let screenSize: CGRect = UIScreen.main.bounds
let navBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: screenSize.width, height: 44))
let navItem = UINavigationItem(title: "")
let doneItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.done, target: nil, action: #selector(done))
navItem.rightBarButtonItem = doneItem
navBar.setItems([navItem], animated: false)
self.view.addSubview(navBar)
}
@objc func done() { // remove @objc for Swift 3
问题在于,条形标题似乎偏离中心并且条形非常细。
如何用图像代替标题来使其更厚一些?
更新:
第一个建议似乎无济于事。这是为什么?这是第一个视图控制器。
完整代码:
import UIKit
import Firebase
import FirebaseAuth
class LoginViewController: UIViewController {
@IBOutlet weak var emailField: UITextField!
@IBOutlet weak var passwordField: UITextField!
@IBOutlet weak var gifView: UIImageView!
private var ref: DatabaseReference!
override func viewDidLoad() {
let logo = UIImage(named: "q-small.png")
let imageView = UIImageView(image:logo)
self.navigationItem.titleView = imageView
gifView.loadGif(name: "truck-animation")
super.viewDidLoad()
ref = Database.database().reference()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
答案 0 :(得分:0)
答案 1 :(得分:0)
似乎您正在以编程方式创建UINavigationBar
,并且我还假设您正在使用情节提要创建应用。
self.navigationItem
返回您ViewController
的导航项。但是根据您的代码,您必须仅创建UINavigationBar
。因此,要获得标题视图,您需要UINavigationController
中的ViewController
。
如果这是您的第一个应用视图,则可以通过将ViewController
嵌入到Storyboard中到导航控制器中来进行添加,而不必以编程方式添加导航栏。
之后,您可以在viewDidLoad()
中使用此代码。
let logo = UIImage(named: "logo.png")
let imageView = UIImageView(image:logo)
self.navigationItem.titleView = imageView