答案 0 :(得分:2)
AFAIK UILabel
没有这种功能,但是您可以通过使用UITextView实现此行为。您可以将其调整为看起来像您的标签,然后为其文本容器设置排除路径,如下所示:
let exclusionPath = UIBezierPath(rect: textView.convert(button.frame, from: button.superview))
textView.textContainer.exclusionPaths = [exclusionPath]
如果您还想根据第一行中的可用宽度更改按钮的宽度,则可以设置最小宽度的排除路径框架(根据文本宽度和按钮中的插入内容),然后计算第一行中的可用空间,例如与this answer中提到的方法相同(它显示了如何计算最后一行的宽度,但对第一行的宽度却非常相似)
答案 1 :(得分:0)
只需尝试使用此代码,它将对您有帮助
myMutableString = NSMutableAttributedString(string: myString, attributes: [NSFontAttributeName:UIFont(name: "Georgia", size: 18.0)!])
myMutableString.addAttribute(NSForegroundColorAttributeName, value: UIColor.redColor(), range: NSRange(location:2,length:4))
myMutableString.addAttribute(NSFontAttributeName, value: UIFont(name: "SFUIText-Bold", size: 14)!, range: NSRange(location:2,length:4))
labName.attributedText = myMutableString