使用IB在UIButton上居中多行文本

sdk*_*bie 34 iphone multiline interface-builder ios

如何使用Interface Builder在UIButton中逐行中心文本?我正在搜索选项,只是没有看到它.这是按钮:

文本未居中的按钮

rob*_*off 55

您无法将文本设置为在笔尖中居中.但您可以更改代码中的对齐方式:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.myButton.titleLabel.textAlignment = UITextAlignmentCenter;
}
Run Code Online (Sandbox Code Playgroud)

  • 对于iOS8(和Swift),您必须使用`NSTextAlignment.Center`.如果您创建自己的按钮类,可以在其init /构造函数中执行此操作:`self.titleLabel?.textAlignment = NSTextAlignment.Center` (4认同)

Jef*_*art 13

我知道这是一个古老的问题,但我在自己的尝试中遇到了它,以便在IB中将UIButton的多行文本居中.我发现默认情况下,当"title"设置为"plain"并且"line break"设置为"自动换行"时,标题文本的最长行居中,其他行左对齐此行(类似于OP的屏幕截图).

为了使所有线条都正确居中,需要将"标题"更改为"归属".这提供了更多选项来自定义标题文本的外观.将每行文本居中(现在您可以实际更改每行的对齐方式).另外一定要在文本上方的"more ..."下面设置"换行符"到"自动换行".这个换行选项的行为似乎存在一个错误,至少在Xcode 4.5中是这样,因为IB中按钮上的文本看起来不正确,截断除第一行以外的所有内容.似乎"自动换行"和截断选项在IB中向后解释,但如果运行应用程序,它在模拟器中的行为正确.


Ale*_*lov 11

实际上你可以在界面构建器中完成它.

只需将Title设置为"Attributed",然后选择center alignment.


小智 8

您可以通过故事板在UIButton中设置中心多行文本.

这就是你如何使文本有两行或更多行.

设置以下键路径

Identity Inspector - >用户定义的运行时属性 - >在下面添加新的键值对

titleLabel.textAlignment - NSNumber - 1
Run Code Online (Sandbox Code Playgroud)

 titleLabel.numberOfLines - NSNumber - 5 - or use "0" meaning "any number"
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

在此输入图像描述

请注意,(2016)遗憾的是它实际上并没有在Storyboard中显示两行或更多行文本(您只看到第一行),但它在模拟器或设备中运行时效果很好.