我不能以IB为中心设置UIButton的标题。我的标题是多行。
像这样给
但是我想要这样
我已经在其中留出了空间,但我不想这样做。因为在某些情况下它不是完全对齐的,并且我知道有UILabel的属性可以设置对齐方式,但是我不想为此编写代码..只是想从IB设置所有内容。
谢谢
我不能以IB为中心设置UIButton的标题。我的标题是多行。
像这样给
但是我想要这样
我已经在其中留出了空间,但我不想这样做。因为在某些情况下它不是完全对齐的,并且我知道有UILabel的属性可以设置对齐方式,但是我不想为此编写代码..只是想从IB设置所有内容。
谢谢
Answers:
这将完全符合您的期望:
目标C:
[myButton.titleLabel setTextAlignment:UITextAlignmentCenter];
对于iOS 6或更高版本
[myButton.titleLabel setTextAlignment: NSTextAlignmentCenter];
迅速:
myButton.titleLabel?.textAlignment = NSTextAlignment.Center
Swift 4.x及更高版本
myButton.titleLabel?.textAlignment = .center
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
使用该行:
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
这应该使内容居中(水平)。
而且,如果要将标签内的文本也设置为居中,请使用:
[labelOne setTextAlignment:UITextAlignmentCenter];
如果您想使用IB,我在这里有一个小示例,该示例链接到XCode 4中,但应提供足够的详细信息(同样请注意,在该属性屏幕的顶部,它显示了属性选项卡。您可以在XCode中找到相同的选项卡3.x):
您可以在情节提要中设置关键路径
将文本设置为多行标题,例如hello
⌥ +↵ multiline
您需要按 ⌥ + ↵将文本移动到下一行。
然后添加密钥路径
titleLabel.textAlignment
as Number
和value 1
,1
表示NSTextAlignmentCenter
titleLabel.numberOfLines
as Number
和value 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
,然后选择下方的文字和新闻中心的选择
PS文本不是多行,因为我必须设置
btn.titleLabel.numberOfLines = 0
Line Breaking = Clip
,它将文本转换为多行
btn.titleLabel.textAlignment
,效果很好。
对于iOS 8和Swift
btn.titleLabel.textAlignment = NSTextAlignment.Center
要么
btn.titleLabel.textAlignment = .Center
UITextAlignmentCenter
在iOS6中已弃用
相反,您可以使用以下代码:
btn.titleLabel.textAlignment=NSTextAlinmentCenter;
对于Swift 4:
@IBAction func myButton(sender: AnyObject) {
sender.titleLabel?.textAlignment = NSTextAlignment.center
sender.setTitle("Some centered String", for:UIControlState.normal)
}
您可以从情节提要中执行此操作。选择您的按钮。将换行符设置为“自动换行”,将标题“普通”设置为“已归因”。选择“居中对齐”。这部分很重要=>单击...(更多)按钮。并将换行模式选择为“字符换行”。
UIButton将不支持setTextAlignment。因此,您需要使用setContentHorizontalAlignment来实现按钮文本对齐
供你参考
[buttonName setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
self.yourButton.titleLabel.textAlignment = UITextAlignmentCenter;