iOS一个按钮中有两个标签

时间:2015-07-06 21:42:24

标签: ios swift uibutton uilabel

我想创建自己的自定义按钮,其中两个标签垂直堆叠,如下所示:

顶部标签将是使用https://github.com/thii/FontAwesome.swift

的FontAwesome图标

我试图这样做:

// 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

上调用

但是,只显示图标。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

使用带有字符和字符串之间新行的属性字符串。 NSFontAttributeName可用于为子字符串设置不同的字体。

UIButton有一个setAttributedTitle forState方法。

答案 1 :(得分:0)

另一种可能更好的选择是从FontAwesome中保存您需要的图像。包括这些图像并相应地设置按钮图像。 UIButtons已经有了图像选项。覆盖imageRectForContentRecttitleRectForContentRect以定位您的观看次数。

使用字体你必须担心线高等。 此外,如果你关心这一点,给你的按钮一个包含字体真棒和常规文本的标题肯定会破坏可访问性。尝试使用带有字体的画外音。

如果您开始使用字体,则应该在按钮上添加UILabel子视图,并将标签正确放置在layoutSubviews