iOS一个按钮中有两个标签

iOS一个按钮中有两个标签,ios,swift,uibutton,uilabel,Ios,Swift,Uibutton,Uilabel,我想用两个垂直堆叠的标签制作自己的自定义按钮,如下所示: 顶部标签将是一个图标,使用 我试着这样做: // Initialize buttonLabel var buttonLabel: UILabel = UILabel() buttonLabel.text = "New Event" //Change initial Label to FontAwesome Image addEventButton.titleLabel?.font = UIFont.fontAwesomeOfSize(

我想用两个垂直堆叠的标签制作自己的自定义按钮,如下所示:

顶部标签将是一个图标,使用

我试着这样做:

// Initialize buttonLabel
var buttonLabel: UILabel = UILabel()
buttonLabel.text = "New Event"


//Change initial Label to FontAwesome Image
addEventButton.titleLabel?.font = UIFont.fontAwesomeOfSize(30)
addEventButton.setTitle(String.fontAwesomeIconWithName(.CalendarO), forState: .Normal)
// Add label to button
addEventButton.addSubview(buttonLabel)
调用它的方法是
viewDidLoad


但是,只有图标显示。如何执行此操作?

使用属性字符串,并在字符和字符串之间添加新行。NSFontAttributeName可用于为子字符串设置不同的字体


UIButton有一个setAttributeTitle for State方法。

另一个可能更好的选择是从FontAware保存所需的图像。包括这些图像并相应地设置按钮图像。UIButtons已具有图像选项。覆盖
imageRectForContentRect
titleRectForContentRect
以定位视图

使用字体时,你必须担心线条的高度等。 此外,如果你在意的话,给你的按钮一个包含字体和常规文本的标题肯定会破坏它的可访问性。尝试使用画外音与字体真棒


如果设置为使用字体,则应改为在按钮中添加UILabel子视图,并在
布局子视图中适当放置标签。您可以查看以了解更多信息。我在那里查看了,但我不知道如何将FontAwesome设置为第一部分的字体string@JonathanAllenGrant为属性字符串中的键NSFontAttributeName设置此对象UIFont.fontAwesomeOfSize(30)。我使用的是Swift,而且Xcode无法识别NSFontAttributeName@JonathanAllenGrant它是:
nsmutableAttributeString(字符串:“测试”,属性:[NSFontAttributeName:UIFont.smallSystemFontSize()])
iOS中的一个辅助功能-向您读取uicontrol。FontAwesome(和其他图标字体)可能会给你带来滑稽的结果。显然不是你的主要用户群,而是需要考虑的东西。我只是把它列为使用图像作为图标而不是字体的原因之一。