Как центрировать текст UITextField в Swift

#ios #uitextfield #swift

#iOS #uitextfield #swift

Вопрос:

У меня есть объект UITextField со свойством text, установленным в «hi». Однако эти две строки не влияют на то, где находится «hi»

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

Это ошибка в Swift? Если да, то как мне зарегистрировать это как ошибку, чтобы Apple могла исправить это в следующем выпуске Swift?

Комментарии:

1. @dasdom да, и это не сработало

Ответ №1:

Вы хотели бы написать это следующим образом:

 myUITextObject.textAlignment = .center
  

(Отредактировано для изменения с .Center на .center)

Комментарии:

1. Обратите также внимание, что для myUITextObject.contentVerticalAlignment может быть установлено значение . Top, .Center, .Fill или .Bottom для изменения выравнивания по вертикали

2. Это центрирует текст только по горизонтали и myUITextObject.contentVerticalAlignment больше не имеет значения. Есть идеи, как добиться вертикального центрирования без выполнения странного взлома смещения.

3. Изменено на myUITextObject.alignment = .center

Ответ №2:

То, что вы ищете, — это свойство textAlignment; попробуйте это:

myUITextObject.textAlignment = NSTextAlignmentCenter;

Комментарии:

1. Код, показанный в этом ответе, не будет работать в Swift (это было бы в Objective-C).

2. @Anna ты права, и я изменил правильный ответ на ответ Дейва

3. @Anna просто любопытно, почему код, который я впервые вставил, не работал, из других сообщений SO казалось, что это был способ сделать это. И наличие двух разных способов сделать одно и то же кажется странным.

4. В Swift это выглядело бы так: TextField.textAlignment = NSTextAlignment. Центрировать;

Ответ №3:

Другой способ сделать это — использовать раскадровку.

На самом деле существует вертикальный и горизонтальный элементы управления, которые вы можете использовать для выравнивания вашего элемента внутри UITextField . В приведенном выше случае выровняйте текст по верхнему левому краю:

введите описание изображения здесь

Надеюсь, это поможет,

Ответ №4:

Swift 5 2021

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