如何使用右侧的UILabel将UIButton对齐到左侧。喜欢Instagram的评论

时间:2016-05-19 14:23:11

标签: ios swift uitableview uibutton uilabel

我正在尝试使用右侧的用户名,然后在按钮左侧显示一些带有文本的UIlabel。

以下是我所追求的一个例子: enter image description here

我只是不确定如何才能获得限制,尤其是UILabel文本在按钮下方的下一行继续的部分......?

如果有人有任何想法,欢迎任何帮助!

问候。

2 个答案:

答案 0 :(得分:2)

请参阅UITextView内部我在UIButton上创建的示例: https://github.com/smozgur/UIButton-inside-UITextView我还在玩它,但到目前为止结果很好。

答案 1 :(得分:1)

我认为最好的方法是用一个标签来做这一切。您可以使用属性字符串设置文本样式(下面的代码)。然后创建一个放在标签顶部的UIButton(可以根据用户名的长度调整UIButton的大小)。

这是我在注册屏幕上创建免责声明标签时使用的方法,如下所示

enter image description here

以下是创建属性字符串的代码:

let disclaimerAttributedString = NSMutableAttributedString(string: disclaimerLabel.text!, attributes: [NSKernAttributeName: -0.4])
disclaimerAttributedString.addAttributes([NSForegroundColorAttributeName: UIColor.whiteColor(), NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue], range: NSMakeRange(38, 12))
disclaimerAttributedString.addAttributes([NSForegroundColorAttributeName: UIColor.whiteColor(), NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue], range: NSMakeRange(55, 14))
disclaimerLabel.attributedText = disclaimerAttributedString

我的情况略有不同,因为我将它应用于静态文本。对于您,您可以根据用户名的长度在代码中创建按钮,或者您可以通过将按钮固定在UILabel的左上角来近似它。

您可以使用this SO answer中的字符串扩展名来计算用户名占用的属性字符串的长度