UITextField — применить пользовательское заполнение с правой и левой стороны

#ios #iphone #swift

#iOS #iPhone #swift

Вопрос:

Я пытаюсь добавить отступы с обеих сторон пользовательского текстового поля, используя следующий код

 func rect(forBounds bounds:CGRect) -> CGRect {
     return bounds.insetBy(dx: 12, dy: 0)
}

override open func textRect(forBounds bounds: CGRect) -> CGRect {
      var rect = super.textRect(forBounds: bounds)
      rect = self.rect(forBounds: rect)
      return rect
}

open override func editingRect(forBounds bounds: CGRect) -> CGRect {
      var rect = super.editingRect(forBounds: bounds)
      rect = self.rect(forBounds: rect)
      return rect
}
  

вывод выглядит следующим образом

Проблема здесь в том, что с левой стороны заполнение отображается идеально, но с правой стороны заполнение не так последовательно. Я не могу понять, что вызывает дополнительное заполнение в правой части текста.

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

1. Вид слева и вид справа!

2. Мне нужен вид слева и справа для разных целей

3. Кстати, ваши методы в swift, почему вы тогда используете objective c tag?. Я добавил тег swift. Пожалуйста, удалите тег objective C, если он не нужен

4. проблема существует в любом из них, даже в коде на swift или objective c

5. Текст, вероятно, выровнен по левому краю, из-за чего текст не распространяется полностью влево -> «заполнение будет больше с правой стороны»