首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS 導航標題字體自適應寬度的實現方案

     編輯:程式設計綜合問答

問題背景

在 iOS 開發中,導航欄標題文字過長時常會被截斷,開發者往往希望標題字體能根據可用寬度自動縮放,類似 UILabel 的 adjustsFontSizeToFitWidth 屬性。然而,UINavigationItem 的預設 titleView 並不直接支援此特性,導致許多開發者嘗試多種方法仍無法實現。

解決方案:自定義 titleView

核心思路是建立一個自定義的 UILabel 作為導航項的 titleView,並啟用其字體自適應屬性。具體步驟如下:

  1. 初始化一個 UILabel,設定適當的框架尺寸。
  2. 開啟 adjustsFontSizeToFitWidth = YES,並根據需要設定 minimumScaleFactor 防止字體過小。
  3. 將該標籤指派給 self.navigationItem.titleView。
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 44)];
titleLabel.text = @"這是一個很長的導航標題文字";
titleLabel.textAlignment = NSTextAlignmentCenter;
titleLabel.font = [UIFont boldSystemFontOfSize:18];
titleLabel.adjustsFontSizeToFitWidth = YES;
titleLabel.minimumScaleFactor = 0.6;
titleLabel.numberOfLines = 1;
self.navigationItem.titleView = titleLabel;

注意事項

  • 框架寬度建議設為導航欄可用區域的最大寬度(如 200pt),避免過窄導致縮放過度。
  • 若使用 Storyboard,可在視圖控制器的 viewDidLoad 中以程式碼建立並指派。
  • 搭配 minimumScaleFactor 可確保字體不會縮小到難以閱讀。

此方法簡單有效,能完美解決導航標題文字過長被截斷的問題,提升使用者體驗。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved