2016-01-23 2 views
0

Я пробовал несколько разных методов и расширений после того, как наткнулся на них на S.O. но безрезультатно. Есть ли окончательный способ выделить только часть UIButton.titleLabel?Полужирная часть ярлыка заголовка UIButton

Вот некоторые из расширений, которые я пробовал:

func attributedText(fullStr: String, boldStr: String) -> NSAttributedString { 

       let attributedString = NSMutableAttributedString(string: fullStr as String, attributes: [NSFontAttributeName:UIFont.systemFontOfSize(12.0)]) 

       let boldFontAttribute = [NSFontAttributeName: UIFont.boldSystemFontOfSize(12.0)] 

       // Part of string to be bold 
       attributedString.addAttributes(boldFontAttribute, range: NSMakeRange(0, boldStr.characters.count)) 


       return attributedString 
} 


func boldRange(range: Range<String.Index>) { 
       if let text = self.attributedTitleForState(UIControlState.Normal) { 
        let attr = NSMutableAttributedString(attributedString: text) 
        let start = text.string.startIndex.distanceTo(range.startIndex) 
        let length = range.startIndex.distanceTo(range.endIndex) 
        attr.addAttributes([NSFontAttributeName: UIFont.boldSystemFontOfSize(16)], range: NSMakeRange(start, length)) 
        self.setAttributedTitle(attr, forState: UIControlState.Normal) 
       } 
} 


func boldSubstring(substr: String) { 
       let range = substr.rangeOfString(substr) 
       if let r = range { 
        boldRange(r) 
       } 
} 

Кто-нибудь есть что-нибудь?

+0

Непонятно, где находится точка ввода ur-кода, и не установлен ли ваш объект 'NSAttributedString' на' UIButton'. Ниже приведен пример использования SO. Это Obj-C, но вы должны быть в состоянии понять это: http://stackoverflow.com/questions/17756067/ios-nsattributedstring-on-uibutton – believesInSanta

ответ

0

Получил это только с небольшим количеством поведения и некоторой локоть-смазкой.

let text = "This is the" 
let attr = NSMutableAttributedString(string: "\(text) button's text!") 
attr.addAttribute(NSFontAttributeName, value: UIFont.boldSystemFontOfSize(14), range: NSMakeRange(0, text.characters.count)) 
cell.nameLabel.setAttributedTitle(attr, forState: UIControlState.Normal) 

// "**This is the** button's text!"