2014-09-16 3 views
1

Я хотел изменить текст ярлыка с надписью «hello world», чтобы «hello» был красным, а «мир» - синим. Я делаю это программно и явно упрощаю этот пример.Связанные строки для UILabels в Xcode 6

Есть ли способ сделать это?

Моей альтернативой было просто создать два uilabels и установить атрибуты каждого из них соответственно, а затем просто добавить их вместе друг к другу, но я подумал, что было бы здорово, если бы я мог просто назначить текст метки как указано выше.

Кстати, это не обязательно должно быть UILabel, если я могу просто сделать этот текст внутри строки UITableView.

Спасибо!

+1

Вы просто должны использовать 'NSAttributedString'. В 'Objective-C' есть много учебников, которые вы могли бы адаптировать в' Swift'. – Larme

ответ

0

Вот небольшой пример того, как использовать NSAttributedString:

var resultString = NSMutableAttributedString(string: "Hello ", attributes: [NSForegroundColorAttributeName : UIColor.redColor()]) 
var worldString = NSMutableAttributedString(
    string: "World", 
    attributes: [ 
     NSForegroundColorAttributeName : UIColor.redColor(), 
     NSFontAttributeName : UIFont.boldSystemFontOfSize(13.0) 
    ] 
) 

resultString.appendAttributedString(worldString) 

Затем вы можете назначить его UILabel:

UILabel().attributedText = resultString 
+0

Эй, спасибо за вашу помощь - быстрый вопрос - есть ли способ сделать «мирную строку» полужирным? Как бы это выглядело? – NullHypothesis

+0

Обновлен мой ответ на примере. Вы можете cmd + щелкнуть по 'NSForegroundColorAttributeName' в Xcode, чтобы изучить другие возможные атрибуты. – Kirsteins

Смежные вопросы