Строка разного размера для заголовка UIButton

Я пытаюсь вывести заголовок для действия кнопки в предупреждении, как показано ниже.

пример строки в кнопке:
введите здесь описание изображения

let formattedString = NSMutableAttributedString()
            formattedString.append(NSAttributedString(string: "Text is small" ,
                                                      attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 8.0)]))
            formattedString.append(NSAttributedString(string: "Text is large"))

В UIAlertcontroller действие UIButton

.addAction(action: AABlurAlertAction(title: formattedString, style: AABlurActionStyle.modern)

Но он отказался принять NSMutableAttributedString для передачи аргумента заголовка.

Выдает ошибку

Cannot convert value of type 'NSMutableAttributedString' to expected argument type 'String?'

person mohocoso    schedule 26.08.2019    source источник


Ответы (2)


попробуйте setAttributedTitle() вместо setTitle()

button.setAttributedTitle(formattedString, for: .normal)
person Naveen Kommuri    schedule 26.08.2019
comment
Вы должны добавить к своему ответу, что достаточно передать title: nil в инициализаторе, а затем изменить заголовок, используя setAttributedTitle. Однако .highlighted также следует изменить. См. github.com/anas10/AABlurAlertController/blob/master/Source. / - person Sulthan; 26.08.2019
comment
Я создал два класса для двух таких кнопок... Можем ли мы сделать так, чтобы у него был один класс с другой строкой?? iswift.org/playground?SdBoRT&v=3 - person mohocoso; 26.08.2019

Все, что вам нужно, это изменить код в классе AABlurAlertAction.

self.setTitle(title, for: UIControlState.normal) 

заменить это на

self.setAttributedTitle(title, for: UIControlState.normal)

и заменить

public init(title: String?, style: AABlurActionStyle, handler: ((AABlurAlertAction) -> Void)?) {

с

public init(title: NSAttributedString?, style: AABlurActionStyle, handler: ((AABlurAlertAction) -> Void)?) {
person Gaurav    schedule 26.08.2019
comment
Я создал два класса для двух таких кнопок... Можем ли мы сделать так, чтобы у него был один класс с другой строкой?? iswift.org/playground?SdBoRT&v=3 - person mohocoso; 26.08.2019