簡體   English   中英

如何在大型導航欄上將圖像用作標題?

[英]How to Use Image as title on large Navigation Bar?

我正在嘗試將圖像設置為大型導航欄上的標題。 到目前為止,我可以像在標准導航欄上一樣將其顯示在頂部中心位置。

我正在嘗試用圖片替換“所有收件箱”。

在此處輸入圖片說明

目前,我通過使用self.navigationItem.titleView = UIImageView(image #i ageLiteral(resourceName: “logo pic”))得到了類似的結果 在此處輸入圖片說明

注意-標題文本“設置”沒有出現,但徽標/圖像在該位置顯示為“徽標”。 (我希望圖片/徽標位於第一張圖片的下方,並且位於左側)

好了,您已經可以將圖像放置在欄中了,因此現在只需調整視圖大小即可使其適合所需位置。

通過調整UIImage的框架大小來執行此操作,因為僅調整UIImageView大小在導航欄中不起作用(請參見此處 )。

編輯:經過一些試驗,我設法做你想要的。 這有點駭人聽聞,您可能需要自己找出正確的尺寸值,但我設法實現了以下觀點:

徽標位置正確

這是通過添加一個名為“ container”的UIView作為titleView來完成的,該UIView然后包含一個UIImageView 雖然“容器”主要限於工具欄的“頂部”部分,但現在包含的UIImageView可以在導航欄中自由移動。 您可以看到這有點駭人聽聞:

徽標位於通常的標題文本上方,容器為黑色

在此圖像中,您可以看到容器UIView具有黑色背景色。 它不能超過titleView的特定大小。 檢查視圖層次結構將顯示徽標的位置:

視圖層次

這是通過以下代碼實現的:

let logo = UIImage(named: "logo")

let container = UIView(frame: CGRect(x: 0, y: 0, width: 182, height: 132))
container.backgroundColor = UIColor.clear

let imageView = UIImageView(frame:  CGRect(x: -132, y: 2, width: 182, height: 132))
imageView.contentMode = .scaleAspectFit
imageView.image = logo

container.addSubview(imageView)

self.navigationItem.titleView = container

正如我所說,這是駭人聽聞的,當然不是Apple想要的。 此解決方案可能無法在將來的iOS版本中使用。

您還可以將container widthheight設置為0然后從那里進行實驗。 所有這些都是通過反復試驗手動找到正確的幀值。

我正在嘗試用圖片替換“所有收件箱”

好吧,你不能。 大標題是標題;大標題是標題。 這是文字。 它不能是圖像。 標題視圖可以是圖像,但它位於導航欄的中心。 您顯示的屏幕截圖正確; 這就是它的外觀。 結束。 停止嘗試濫用框架。

暫無
暫無

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

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