我无法使用IB作为中心来设置UIButton的标题。我的标题是多行的。
就像这样给出
但我希望这一个
我已经给了空间,但我不想这样做。由于它没有完全对齐某些情况,我知道UILabel有一个属性来设置对齐但我不想为此编写代码..只想从IB设置所有内容。
由于
答案 0 :(得分:178)
这将完全符合您的期望:
<强>目标-C:强>
[myButton.titleLabel setTextAlignment:UITextAlignmentCenter];
对于iOS 6或更高版本,它是
[myButton.titleLabel setTextAlignment: NSTextAlignmentCenter];
中所述
<强>夫特:强>
myButton.titleLabel?.textAlignment = NSTextAlignment.Center
答案 1 :(得分:102)
使用以下行:
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
这应该使内容居中(水平)。
如果您想将标签内的文字设置为中心,请使用:
[labelOne setTextAlignment:UITextAlignmentCenter];
如果你想使用IB,我在这里有一个小例子,它在XCode 4中链接但是应该提供足够的细节(还要注意,在该属性屏幕的顶部显示属性选项卡。你可以找到相同的XCode 3.x中的选项卡:
答案 2 :(得分:80)
您可以在故事板中设置关键路径
将文字设置为多行标题,例如hello
⌥ + ↵ multiline
您需要按⌥ + ↵将文本移至下一行。
然后添加密钥路径
titleLabel.textAlignment
为Number
,价值为1
,1
表示NSTextAlignmentCenter
titleLabel.numberOfLines
为Number
而值0
,0
表示任意数量的行
这不会反映在IB / Xcode上,但会在运行时(设备/模拟器)处于中心位置
如果您想在Xcode上看到更改,您需要执行以下操作:(请记住,您可以跳过这些步骤)
对UIButton进行子类化以使按钮可设计:
import UIKit
@IBDesignable class UIDesignableButton: UIButton {}
将此可设计的子类分配给您正在修改的按钮:
如果您想编写代码,请执行漫长的过程
1.为按钮
创建IBOutlet
2.在viewDidLoad中编写代码
btn.titleLabel.textAlignment = .Center
btn.titleLabel.numberOfLines = 0
在较新版本的xcode(我的是xcode 6.1)中,我们将属性归属于标题
选择Attributed
,然后选择文字并按下
P.S。由于我必须设置
,因此文字未出现多行 btn.titleLabel.numberOfLines = 0
答案 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)
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。所以你需要使用setContentHorizontalAlignment进行按钮文本对齐
供您参考
[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)
}