【问题标题】:Multiline NSAttributed String as UIButton Title多行 NSAttributed 字符串作为 UIButton 标题
【发布时间】:2016-05-10 06:05:53
【问题描述】:

我的问题在理论上与这个问题相似:iOS NSAttributedString on UIButton

我希望将按钮的标题改为:

"带下划线的字符串

一些文字”

这需要以编程方式 100% 快速完成。

我试图通过使用 NSMutableAttributedString 创建带下划线的部分,然后将其附加到其他文本(以换行符开头)来做到这一点。但是,这给了我错误“无法将类型'Void'('aka'()')的值分配给类型'NSMutableAttributedString”

代码如下:

var patientName = NSMutableAttributedString(string:"Patient Name", attributes: underlineAttributes)
var clickforinfomessage = NSMutableAttributedString(string: "\nclick for patient info")
clickforinfomessage = clickforinfomessage.appendAttributedString(patientName)
startVisitButton.setAttributedTitle(clickforinfomessage, forState: .Normal)

【问题讨论】:

  • clickforinfomessage = clickforinfomessage.appendAttributedString(patientName)clickforinfomessage.appendAttributedString(patientName)。正如错误所说,此方法(appendAttributedString())没有返回。

标签: ios string swift uibutton nsattributedstring


【解决方案1】:

你可以这样做:

let dict1 = [NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue]

let attString = NSMutableAttributedString()
attString.appendAttributedString(NSAttributedString(string: "Patient Name\n", attributes: dict1))
attString.appendAttributedString(NSAttributedString(string: "click for patient info", attributes: nil))
startVisitButton.setAttributedTitle(attString, forState: .Normal)
startVisitButton.titleLabel?.numberOfLines = 0
startVisitButton.titleLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping

结果将是:

【讨论】:

  • 如何在此处更改标题大小?
  • 您可以添加字体大小属性。 @AbhishekMitra
  • 在 iOS 11 中设置 numberOfLines = 0 解决了这个问题。
  • @DharmeshKheni 如何为第二行文本应用居中对齐?
【解决方案2】:

只需设置按钮标题标签的行数

let attrTet = NSMutableAttributedString(string: "Test is \ne next line.", attributes: nil)
testButton.titleLabel?.numberOfLines = 0
testButton.setTitle(attrTet.string, forState: .Normal)

代码查看:

输出:

【讨论】:

  • 不起作用。文档清楚地提到属性标题被假定为单行。
  • 也许您没有正确尝试它 100% 有效,请确保您的按钮没有固定高度。
  • 如果我只想在按钮底部而不是文本底部加下划线,该怎么做?传统知识
猜你喜欢
  • 2015-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-13
  • 1970-01-01
  • 2012-04-06
相关资源
最近更新 更多