Вложение через NSAttributedStringKey не видно

Новая функция большого заголовка может быть настроена с помощью largeTitleTextAttributes который (как и любые другие атрибуты) dictionary с NSAttributedStringKey ключи. Один из этих ключей NSAttachmentAttributeName / attachment,

Учти это:

let attachment = NSTextAttachment()
attachment.image = UIImage(named: "foo")
attachment.bounds = CGRect(x: 0.0, y: 0.0, width: 20.0, height: 20.0)

var largeTitleTextAttributes: [NSAttributedStringKey: Any] = [:]
largeTitleTextAttributes[.attachment] = attachment
navigationBar.largeTitleTextAttributes = largeTitleTextAttributes

Проблема в том, что приложение, которое я назначил largeTitleTextAttributes атрибут attachment не видно

Как добавить вложение в словарь атрибутов, чтобы вложение было видно? (Я не ищу NSAttributedString "s init(attachment: NSTextAttachment )

2 ответа

AS Doc сказал, что вы можете указать только

Вы можете указать шрифт, цвет текста, цвет тени текста и смещение тени текста для заголовка в словаре атрибутов текста, используя ключи атрибута текста, описанные в NSAttributedStringKey.

Но вы можете напрямую установить UILabel в заголовок панели навигации, используя следующий код

let image1Attachment = NSTextAttachment()
        image1Attachment.image = UIImage(named: "bb")
        image1Attachment.bounds = CGRect.init(x: 0.0, y: 0.0, width: 20, height: 20)
        let image1String = NSAttributedString(attachment: image1Attachment)
        let label: UILabel = UILabel.init(frame: (self.navigationController?.navigationBar.frame)!)
        label.attributedText = image1String
        if #available(iOS 11.0, *) {
            self.navigationItem.titleView = label
            }
        else {
            // Fallback on earlier versions
        }

При просмотре документов Apple список атрибутов, которые вы можете указать в titleTextAttributess, кажется ограниченным:

Вы можете указать шрифт, цвет текста, цвет тени текста и смещение тени текста для заголовка в словаре атрибутов текста, используя ключи атрибута текста, описанные в NSAttributedStringKey.

https://developer.apple.com/documentation/uikit/uinavigationbar/1624953-titletextattributes

К сожалению, вложения изображений не в списке.

Другие вопросы по тегам