ios - swift3、Xcode 8.3 导航设置 titleTextAttributes 失败

标签 ios swift uinavigationcontroller attributes uinavigationbar

我希望我的导航标题使用 TruncationMiddle,如“ABC...XYZ”。
我尝试这样做,但失败了。
谢谢。

self.title = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"

let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineBreakMode = .byTruncatingMiddle

self.navigationController!.navigationBar.titleTextAttributes = [NSParagraphStyleAttributeName: paragraphStyle]


我的项目失败了
Link of my project in GitHub.

更新图像:

enter image description here

最佳答案

您实际上需要使用 NSMutableParagraphStyle 而不是 NSParagraphStyle

let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineBreakMode = .byTruncatingMiddle

self.navigationController?.navigationBar.titleTextAttributes = [NSParagraphStyleAttributeName: paragraphStyle]

lineBreakMode 属性有一个 setter,您可以使用它来代替直接使用键设置值,这是 NSParagraphStyle 类和 不允许的truncationMode 键。

关于ios - swift3、Xcode 8.3 导航设置 titleTextAttributes 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48070473/

相关文章:

swift - <viewcontroller> 与协议(protocol) 'UISearchBarDelegate' 的冗余一致性 - Swift 4

ios - (Swift) 弹回导航 Controller

ios - 使用 TRON 获取 JSON

ios - UITabBarController 内的 UINavigationController 在 iOS 6 中不会旋转

ios - 从应用程序委托(delegate)推送 View Controller

swift - 在 Swift 中给定一个十六进制字符串,将其转换为十六进制值

swift - 如何从 Evernote Swift SDK 中的笔记中取消标记?

ios - 将 UITextView 滚动到特定文本

ios - 导航 Controller 隐藏了我 View 顶部的 iAd 横幅

ios - 无法将导航栏添加到场景 : Root view controller issue?