UIBarButtonItem 上的 ios-fontawesome
Posted
技术标签:
【中文标题】UIBarButtonItem 上的 ios-fontawesome【英文标题】:ios-fontawesome on UIBarButtonItem 【发布时间】:2014-11-24 11:46:49 【问题描述】:我正在尝试使用ios FontAwesome 在条形按钮上设置图标,如下所示:
[self.barButton setTitle:[NSString fontAwesomeIconStringForEnum:FACamera]];
还有这个:
[self.barButton setTitle:[NSString fontAwesomeIconStringForIconIdentifier:@"fa-camera"]];
不管我用什么标识符,结果都是一样的:
可能出了什么问题?
【问题讨论】:
您是否将FontAwesome.ttf
用作按钮的基本要求?
@holex,不确定在哪里设置...
UIButton
有一个font
属性——这可能是一个好的开始,但原作者有一个详细的描述来展示你如何做到这一点——如果你已经阅读了文档。 .
UIBarButtonItem
没有字体属性,据我所知。 (不需要刻薄,顺便说一句)
是的,它没有,你可以通过appearance
协议改变它的字体。
【参考方案1】:
以防万一其他人想知道:
[self.barButton setTitleTextAttributes:@
NSFontAttributeName: [UIFont fontWithName:@"FontAwesome" size:24.0],
NSForegroundColorAttributeName: self.view.tintColor
forState:UIControlStateNormal];
[self.barButton setTitle:[NSString fontAwesomeIconStringForIconIdentifier:@"fa-camera"]];
【讨论】:
【参考方案2】:在斯威夫特中:
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
【讨论】:
【参考方案3】:使用 FontAwesomeKit 2.2 API,您可以这样做:
[self.barButton setTitleTextAttributes:@
NSFontAttributeName: [FAKFontAwesome iconFontWithSize:20]
forState:UIControlStateNormal];
[self.barButton setTitle:[FAKFontAwesome cameraIconWithSize:20].attributedString.string];
或者按照FontAwesomeKit documentation 中的建议转换为UIImage
:
FAKFontAwesome *cameraIcon = [FAKFontAwesome cameraIconWithSize:20];
UIImage *cameraImage = [cogIcon imageWithSize:CGSizeMake(20, 20)];
[self.barButton setImage:camera];
【讨论】:
【参考方案4】:如果您想在不使用属性文本的情况下使用更简单的解决方案,请查看我的库。还支持可可豆荚。 Font Awesome Swift
【讨论】:
【参考方案5】:在 Swift 4 中,这对我有用
let button1 = UIBarButtonItem(title: "\uf05a", style: .plain, target: self, action: #selector(showCartInfoPopUp(_:)))
button1.setTitleTextAttributes([.font : UIFont(name: "Font Awesome 5 Pro", size: 24), .foregroundColor : UIColor.white], for: .normal)
self.navigationItem.rightBarButtonItem = button1
【讨论】:
以上是关于UIBarButtonItem 上的 ios-fontawesome的主要内容,如果未能解决你的问题,请参考以下文章
UIBarButtonItem 上的 ios-fontawesome
按下时以编程方式移除 UIBarButtonItem 上的灯光?
如何在导航栏上的 UIBarButtonItem 内偏移 UIButton 图像?
将 UiBarButtonItem 上的 UIImage 从标识符更新为图像