UIButton标题对齐和多行支持


68

如何将a的标题设置UIButton为左对齐,以及如何在a中显示多行文本UIButton


1
看起来像iPhone开发。
Kekoa

22
Raju,您应该真正接受您的答案……这就是使系统正常工作的原因。
Codezy

1
UILineBreakModeWordWrap运作良好,但UIControlContentHorizo​​ntalAlignmentLeft就像左中角一样,并不像UILabel那样完全居中对齐
Amit Battan 2010年

1
接受以下答案之一。
都铎王朝

2
您应该接受以下答案之一。第二个有图表!
Ziggy 2012年

Answers:



131

要设置a的对齐方式UIButton,请在Interface Builder中的Attributes Inspector中查找该按钮。有一个称为对齐的部分。将其设置为左侧。或正确,或任何您想要的。

在此处输入图片说明

要在代码中使用,请使用的contentHorizontalAlignment属性UIControl。您可以将其设置为以下任何属性:

UIControlContentHorizontalAlignmentCenter
UIControlContentHorizontalAlignmentLeft
UIControlContentHorizontalAlignmentRight
UIControlContentHorizontalAlignmentFill

[myButton setContentHorizontalAlignment:UIControlContentHorizontalAlignmentRight];

这些选项都没有一个看起来特别好(如您在上面看到的),并且使用contentEdgeInsets属性UIButton重新定位内容可能会带来更多的运气。

要设置多标题UIButton检查这个论坛的帖子这说明变更按钮标签。

或者,您可以使用此代码快速创建2行按钮:

myButton.titleLabel.textAlignment = UITextAlignmentCenter;
myButton.titleLabel.lineBreakMode = UILineBreakModeCharacterWrap;
[myButton setTitle:@"Siegfried\nRoy" forState:UIControlStateNormal];

在此处输入图片说明

Raju,别忘了将问题标记为已接受。


11
您没有得到足够的答案来回答您的一些问题;-)
罗格2009年

2
numberOfLines在iOS5上可以使用,但仍需要lineBreakMode为iOS 4设置。
ı12uǝʞ2012年

请注意,设置标题时,使用指定UIControlState的消息很重要。如果只是将其设置为属性,标签将不会为新文本调整大小。请参阅:stackoverflow.com/questions/4576331/…–
AndrewCr

@AndrewCr需要明确的是,我setTitle:forState在上面的示例中使用。

2
仅供参考:UITextAlignmentCenter在iOS 6中已弃用,现在应改为使用NSTextAlignmentCenter。
克里斯·霍尔

7

实际上,您可以将设置lineBreakModeUILineBreakModeWordWrapUILineBreakModeCharacterWrap。如有必要,这会将文本分成多行。


6

尝试这个

    myButton.titleLabel.textAlignment = UITextAlignmentLeft;
    myButton.titleLabel.lineBreakMode = UILineBreakModeCharacterWrap;
    myButton.titleLabel.numberOfLines = 0;

3

要添加段落效果,您可以更改标题的大小。

对于阿琳娜效应

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.