如何在 Swift 中将 UITextField 文本居中

Posted

技术标签:

【中文标题】如何在 Swift 中将 UITextField 文本居中【英文标题】:How to center UITextField text in Swift 【发布时间】:2014-07-05 17:35:20 【问题描述】:

我有一个文本属性设置为“hi”的 UITextField 对象。但是这两行对“hi”的位置没有影响

 myUITextObject.contentVerticalAlignment = UIControlContentVerticalAlignment.Center
 myUITextObject.contentHorizontalAlignment = UIControlContentHorizontalAlignment.Center

这是 Swift 中的错误吗?如果是这样,我该如何将其记录为错误,以便 Apple 可以在下一个 Swift 版本中修复它?

【问题讨论】:

@dasdom 是的,但没用 【参考方案1】:

你会想这样写:

myUITextObject.textAlignment = .center

(已编辑以从 .Center 更改为 .center)

【讨论】:

还要注意 myUITextObject.contentVerticalAlignment 可以设置为 .Top、.Center、.Fill 或 .Bottom 以影响垂直对齐 这只会使文本水平居中,myUITextObject.contentVerticalAlignment 不再是一个东西。任何想法如何在不做奇怪的偏移黑客的情况下实现垂直居中。 谢谢!帮助已满。 更改为 myUITextObject.alignment = .center【参考方案2】:

您正在寻找的是 textAlignment 属性;试试这个:

myUITextObject.textAlignment = NSTextAlignmentCenter;

【讨论】:

此答案中显示的代码在 Swift 中不起作用(在 Objective-C 中会起作用)。 @Anna 你说得对,我把正确答案改成了 Dave 的 @Anna 只是好奇,为什么我第一次粘贴的代码不起作用,从其他 SO 帖子看来,这就是这样做的方法。用两种不同的方式做同样的事情似乎很奇怪。 在 Swift 中它看起来像这样: textField.textAlignment = NSTextAlignment.Center;【参考方案3】:

另一种方法是使用情节提要。

事实上,有一个垂直和水平控件可用于对齐UITextField 内的元素。 在上述情况下,将文本对齐到 左上角

希望对你有帮助,

【讨论】:

【参考方案4】:

Swift 5 2021

yourTextField.attributedText = NSAttributedString(string: "String for textfield", attributes: [.paragraphStyle: paragraphStyle])

【讨论】:

以上是关于如何在 Swift 中将 UITextField 文本居中的主要内容,如果未能解决你的问题,请参考以下文章

如何在Swift中将UITextField键盘类型更改为电子邮件

在 Xcode 8 和 Swift 3 中将 UITextField 转换为 Integer 并使用它们进行计算

在 Swift 中将用户输入限制为有效的十进制数

是否有类似IQKeyboardManagerSwift的工具在Swift iOS中将UITextView向上移动?

swift 如何在Swift中为UITextField设置填充。

如何在 Swift 中的 UITextField 下显示错误