我需要用两行代码和不同的字体和大小来制作一个UISegmentedControl。
我设法做到只有两行,但是我不知道如何制作不同的大小和字体。
for segment in segmentedControl.subviews{
for label in segment.subviews{
if let labels = label as? UILabel{
labels.numberOfLines = 2
}
}
}
segmentedControl.setTitle("Hiragana \n ひらがな", forSegmentAt: 0)
segmentedControl.setTitle("Katakana \n カタカナ", forSegmentAt: 1)
现在我有这样的东西:
想要这样:
答案 0 :(得分:0)
UISegmentedControl
不支持诸如UILabel
这样的属性标题,因此不支持具有两种不同字体的标题。
一种解决方案是从UIImage
创建NSAttributedString
,然后将图像与分段控件一起使用。
另一种选择是创建自己的(或找到第3方)自定义控件,以使用属性标题。
答案 1 :(得分:0)
Apple提供的默认功能无法实现
但是您可以像处理行数一样遍历子视图
并添加
let attrString = NSMutableAttributedString(string: "Hiragana",
attributes: [
NSAttributedString.Key.font: UIFont.systemFont(ofSize: 20) ])
attrString.append(NSMutableAttributedString(string: "ひらがな",
attributes:
[NSAttributedString.Key.font: UIFont.systemFont(ofSize: 40) ]))
然后将其添加到标签
label.attributedText = attrString