Как добавить панель навигации с изображением вместо заголовка в UIViewController? - PullRequest
0 голосов
/ 27 января 2019

В настоящее время это то, что у меня есть:

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()

}

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Похоже, что вы создаете UINavigationBar программно, и я также предполагаю, что вы создаете приложение с использованием раскадровки.

self.navigationItem возвращает элементы навигации вашего ViewController.Но согласно вашему коду вы должны были создать только UINavigationBar.Таким образом, чтобы получить представление заголовка, вам нужно UINavigationController вашего ViewController.

Если это ваш первый вид приложения. Вы можете добавить это, вставив ваш ViewController в контроллер навигации из раскадровки, тогда вам не нужно добавлять панель навигации программно.

После этого вы можете использовать этот код в viewDidLoad().

let logo = UIImage(named: "logo.png")
let imageView = UIImageView(image:logo)
self.navigationItem.titleView = imageView
0 голосов
/ 27 января 2019

Это похоже на Swift Navigation Bar Заголовок изображения .

Просто используйте этот код:

let logo = UIImage(named: "logo.png")
let imageView = UIImageView(image:logo)
self.navigationItem.titleView = imageView
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...