簡體   English   中英

在Swift 4中的UINavigationBar中將圖像設置為標題

[英]Set an image as a title in UINavigationBar in swift 4

我為導航欄使用以下代碼,該代碼為標題設置單詞Title,但希望它成為我的徽標。

     navigationbar = UINavigationBar(frame: CGRect(x: 0, y: 20, width: self.view.bounds.width, height: 44));

    navigationbar.barTintColor = UIColor(red: 247/255, green: 247/255, blue: 247/255, alpha: 1.0);

    let title = UINavigationItem(title: "Title");

    navigationbar.setItems([title], animated: false);

    self.view.addSubview(navigationbar);

如果我想要方形徽標,@ 1x,@ 2x和@ 3x的像素大小也應該是多少? 徽標也是我的應用程序圖標。

不能完全確定這是否是您要實現的目標,但是已經有了一些建議。

這是一個受歡迎的:

let logo = UIImage(named: "logo") // Or logo.png if you haven't added it to assets
let imageView = UIImageView(frame: CGRect(x:0, y:0, width:50.0, height:50.0))
imageView.image = logo
imageView.contentMode = .scaleAspectFit
self.navigationItem.titleView = imageView

或者可以使用此方法:

func addNavBarImage() {

    let navController = navigationController!

    let image = UIImage(named: "logo.png") //Your logo url here
    let imageView = UIImageView(image: image)

    let bannerWidth = navController.navigationBar.frame.size.width
    let bannerHeight = navController.navigationBar.frame.size.height

    let bannerX = bannerWidth / 2 - (image?.size.width)! / 2
    let bannerY = bannerHeight / 2 - (image?.size.height)! / 2

    imageView.frame = CGRect(x: bannerX, y: bannerY, width: bannerWidth, height: bannerHeight)
    imageView.contentMode = .scaleAspectFit

    navigationItem.titleView = imageView
}

回答這個問題

試試這個

// top-logo = your image name 
if let logo = UIImage(named: "top-logo"){
    let imageView = UIImageView(image:logo)
    self.navigationItem.titleView = imageView
}

輸出:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM