如何制作UIButton的文本对齐中心?使用IB

时间:2011-04-19 07:23:14

标签: ios objective-c uibutton interface-builder

我无法使用IB作为中心来设置UIButton的标题。我的标题是多行的。
就像这样给出enter image description here

但我希望这一个enter image description here

我已经给了空间,但我不想这样做。由于它没有完全对齐某些情况,我知道UILabel有一个属性来设置对齐但我不想为此编写代码..只想从IB设置所有内容。

由于

15 个答案:

答案 0 :(得分:178)

这将完全符合您的期望:

<强>目标-C:

 [myButton.titleLabel setTextAlignment:UITextAlignmentCenter];

对于iOS 6或更高版本,它是

 [myButton.titleLabel setTextAlignment: NSTextAlignmentCenter];

,如tyler53's answer

中所述

<强>夫特:

myButton.titleLabel?.textAlignment = NSTextAlignment.Center

答案 1 :(得分:102)

使用以下行:

myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

这应该使内容居中(水平)。

如果您想将标签内的文字设置为中心,请使用:

[labelOne setTextAlignment:UITextAlignmentCenter];

如果你想使用IB,我在这里有一个小例子,它在XCode 4中链接但是应该提供足够的细节(还要注意,在该属性屏幕的顶部显示属性选项卡。你可以找到相同的XCode 3.x中的选项卡: enter image description here

答案 2 :(得分:80)

解决方法1

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

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

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

enter image description here

然后添加密钥路径

titleLabel.textAlignmentNumber,价值为11表示NSTextAlignmentCenter
titleLabel.numberOfLinesNumber而值00表示任意数量的行

enter image description here

这不会反映在IB / Xcode上,但会在运行时(设备/模拟器)处于中心位置

如果您想在Xcode上看到更改,您需要执行以下操作:(请记住,您可以跳过这些步骤)

  1. 对UIButton进行子类化以使按钮可设计:

    import UIKit
    @IBDesignable class UIDesignableButton: UIButton {}
    

  2. 将此可设计的子类分配给您正在修改的按钮:

  3. Showing how to change the class of the button using Interface Builder

    1. Iff做得对,当Designables状态为“最新”(可能需要几秒钟)时,您将在IB中看到视觉更新:
    2. Comparing the designable and default button in Interface Builder



      溶液2

      如果您想编写代码,请执行漫长的过程

      1.为按钮
      创建IBOutlet 2.在viewDidLoad中编写代码

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


      Solution3

      在较新版本的xcode(我的是xcode 6.1)中,我们将属性归属于标题
      选择Attributed,然后选择文字并按下

      下方的中心选项

      P.S。由于我必须设置

      ,因此文字未出现多行

      btn.titleLabel.numberOfLines = 0

      enter image description here

答案 3 :(得分:26)

对于UIButton,您应该使用: -

[btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];

答案 4 :(得分:16)

对于ios 8和Swift

btn.titleLabel.textAlignment = NSTextAlignment.Center

btn.titleLabel.textAlignment = .Center

答案 5 :(得分:12)

对于那些现在使用iOS 6或更高版本的用户,不推荐使用UITextAlignmentCenter。它现在是NSTextAlignmentCenter

示例:mylabel.textAlignment = NSTextAlignmentCenter;完美无缺。

答案 6 :(得分:9)

对于swift 4,xcode 9

myButton.contentHorizontalAlignment = .center

答案 7 :(得分:7)

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

self.btn.titleLabel.textAlignment = NSTextAlignmentCenter;

答案 8 :(得分:4)

在iOS6中不推荐使用

UITextAlignmentCenter

相反,您可以使用此代码:

btn.titleLabel.textAlignment=NSTextAlinmentCenter;

答案 9 :(得分:3)

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

你应该将标题设置为&#34;归属&#34;然后选择中心对齐。

答案 10 :(得分:3)

对于Swift 3.0

btn.titleLabel?.textAlignment = .center

答案 11 :(得分:2)

尝试这样:

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

答案 12 :(得分:1)

UIButton不支持setTextAlignment。所以你需要使用setContentHorizo​​ntalAlignment进行按钮文本对齐

供您参考

[buttonName setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];

答案 13 :(得分:1)

您可以从故事板中执行此操作。 选择你的按钮。设置换行符&#39;自动换行&#39;,设置标题&#39;平原&#39;来源&#39;归因于#39; 选择中心对齐&#39;。这部分很重要=&gt;单击...(更多)按钮。并选择换行模式为&#39; Character Wrap&#39;。

答案 14 :(得分:1)

对于Swift 4:

@IBAction func myButton(sender: AnyObject) {
    sender.titleLabel??.textAlignment = NSTextAlignment.center
    sender.setTitle("Some centered String", for:UIControlState.normal)
}