2014-11-24 2 views
2

Я пытаюсь использовать iOS FontAwesome установить иконку на панели кнопок, например:КСН-fontawesome на UIBarButtonItem

[self.barButton setTitle:[NSString fontAwesomeIconStringForEnum:FACamera]]; 

, а также с этим:

[self.barButton setTitle:[NSString fontAwesomeIconStringForIconIdentifier:@"fa-camera"]]; 

Независимо от того, что идентификатор Я использую результат тот же:

enter image description here

Что Коу Неправильно?

+0

вы с помощью 'FontAwesome.ttf' для вашей кнопки в качестве основного требования? – holex

+0

@holex, не знаете, где установить это ... – user623396

+0

'UIButton' имеет свойство' font' - это может быть хорошим началом, но у оригинального автора есть подробное описание, чтобы показать, как вы могли это сделать - если вы прочитал документацию ... – holex

ответ

5

В случае, если кто-то когда-нибудь задается вопросом:

[self.barButton setTitleTextAttributes:@{ 
        NSFontAttributeName: [UIFont fontWithName:@"FontAwesome" size:24.0], 
        NSForegroundColorAttributeName: self.view.tintColor 
             } forState:UIControlStateNormal]; 
[self.barButton setTitle:[NSString fontAwesomeIconStringForIconIdentifier:@"fa-camera"]]; 
2

В Swift:

let filterButton = UIBarButtonItem(title: String.fontAwesomeIconWithName(FontAwesome.Filter), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("filterClicked")) 
    filterButton.setTitleTextAttributes(NSDictionary(dictionary: [NSFontAttributeName:UIFont.fontAwesomeOfSize(25), NSForegroundColorAttributeName : UIColor.COLOR_BLUE_DARK]), forState: UIControlState.Normal) 

    self.navigationItem.rightBarButtonItem = filterButton 
0

Только в случае, если вы хотите использовать более простое решение без использования приписываются тексты, смотрите на моей библиотеке. Также поддерживаются капсулы какао. Font Awesome Swift

0

С FontAwesomeKit 2,2 API, вы можете сделать это следующим образом:

[self.barButton setTitleTextAttributes:@{ 
    NSFontAttributeName: [FAKFontAwesome iconFontWithSize:20] 
} forState:UIControlStateNormal]; 
[self.barButton setTitle:[FAKFontAwesome cameraIconWithSize:20].attributedString.string]; 

Или конвертировать в UIImage, как предложено в FontAwesomeKit documentation:

FAKFontAwesome *cameraIcon = [FAKFontAwesome cameraIconWithSize:20]; 
UIImage *cameraImage = [cogIcon imageWithSize:CGSizeMake(20, 20)]; 
[self.barButton setImage:camera]; 
Смежные вопросы