如何使UIButton的文本alignment中心? 使用IB

我不能使用IB作为中心来设置UIButton的标题。 我的标题是多行的。
这是给这样的一个
在这里输入图像说明

但是我想要这个
在这里输入图像说明

我已经给了空间,但我不想这样做。 因为它不是完全alignment的一些情况下,我知道有一个属性的UILabel设置alignment,但我不想写一个代码,只是想设置从IB的一切。

谢谢

这将完全符合你的期望:

Objective-C的:

  [myButton.titleLabel setTextAlignment:UITextAlignmentCenter]; 

对于iOS 6或更高版本

  [myButton.titleLabel setTextAlignment: NSTextAlignmentCenter]; 

正如泰勒53的回答所解释的那样

迅速:

 myButton.titleLabel?.textAlignment = NSTextAlignment.Center 

使用该行:

 myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; 

这应该中心内容(水平)。

如果要将标签内的文本设置为中心,请使用:

[labelOne setTextAlignment:UITextAlignmentCenter];

如果你想使用IB,我在这里有一个在XCode 4中链接的小例子,但是应该提供足够的细节(另外请注意,在属性屏幕上它显示了属性标签,你可以在XCode中find相同的标签3.X): 在这里输入图像说明

解决方法1

您可以在故事板中设置关键path

将文本设置为多行标题,例如hello + multi multiline

您需要按 + 将文本移动到下一行。

在这里输入图像说明

然后添加关键path

titleLabel.textAlignmentNumber和Value 1表示NSTextAlignmentCenter
titleLabel.numberOfLines作为Number和值0意味着任意数量的行

在这里输入图像说明

这不会反映在IB / Xcode上,但会在运行时居中(设备/模拟器)

如果你想看到在Xcode上的变化,你需要做以下几点:(记住你可以跳过这些步骤)

  1. 子类的UIButton使buttondevise:

     import UIKit @IBDesignable class UIDesignableButton: UIButton {} 
  2. 将这个可devise的子类分配给您正在修改的button:

介绍如何使用Interface Builder更改按钮的类

  1. 如果做得对,当Designables状态为“最新”(可能需要几秒钟)时,您会看到IB中的视觉更新:

比较Interface Builder中的可设计和默认按钮


溶液2

如果你想写代码,那么做一个漫长的过程

1.创buildIBOutletbutton
2.在viewDidLoad中写入代码

 btn.titleLabel.textAlignment = .Center btn.titleLabel.numberOfLines = 0 

Solution3

在较新版本的xcode(我的xcode 6.1)中,我们有财产归属标题
selectAttributed然后select下面的文本和新闻中心选项

PS文本是不是多行,因为我必须设置

btn.titleLabel.numberOfLines = 0

在这里输入图像说明

对于UIButton你应该使用: –

 [btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter]; 

对于ios 8和Swift

btn.titleLabel.textAlignment = NSTextAlignment.Center

要么

btn.titleLabel.textAlignment = .Center

对于那些正在使用iOS 6或更高版本的用户,UITextAlignmentCenter已被弃用。 现在是NSTextAlignmentCenter

示例: mylabel.textAlignment = NSTextAlignmentCenter; 完美的作品。

假设btn指向一个UIButton,要将多行标题更改为水平居中,则可以在iOS 6或更高版本中使用以下语句:

 self.btn.titleLabel.textAlignment = NSTextAlignmentCenter; 

UITextAlignmentCenter在iOS6中已弃用

相反,你可以使用这个代码:

btn.titleLabel.textAlignment=NSTextAlinmentCenter;

其实你可以在界面生成器中完成。

您应将标题设置为“已归因”,然后select中心alignment。

UIButton将不支持setTextAlignment。 所以你需要使用setContentHorizo​​ntalAlignment来进行button文本alignment

供你参考

 [buttonName setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter]; 

试试像这样:

 yourButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; yourButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; 

对于Swift 3.0

 btn.titleLabel?.textAlignment = .center 

对于迅速4,Xcode 9

 myButton.contentHorizontalAlignment = .center