Я хочу оставить немного места в начале UITextField, как здесь: добавить левое поле в UITextField
Но я не знаю, как это сделать со Свифтом.
ios
swift
cocoa-touch
uitextfield
LinusGeffarth
источник
источник
UITextField.leftView = paddingView
. так что дайте вид отступа желаемой ширины.Ответы:
Это то, что я использую прямо сейчас:
Swift 4.2
Swift 4
Свифт 3:
Я никогда не устанавливал другой отступ, но вы можете настроить его. Этот класс не заботится о rightView и leftView в текстовом поле. Если вы хотите, чтобы это обрабатывалось правильно, вы можете использовать что-то вроде (пример в objc, и мне нужен только rightView:
источник
newBounds
метода сUIEdgeInsetsInsetRect
функцией. Вместо этогоreturn self.newBounds(bounds)
вы можете использоватьreturn UIEdgeInsetsInsetRect(bounds, padding)
и удалитьnewBounds
метод.Если вы используете расширение, нет необходимости создавать подкласс UITextField, и новая функциональность будет доступна для любого UITextField в вашем приложении:
Когда мне нужно установить отступ текстового поля в любом месте моего приложения, я просто делаю следующее:
Используя расширения Swift, функциональность добавляется в UITextField напрямую, без подклассов.
Надеюсь это поможет!
источник
X, Y, Z - ваши желаемые значения
источник
Такой запас может быть достигнут установкой
leftView
/rightView
кUITextField
.Обновлено для Swift 4
Я просто добавил / поместил
UIView
слева и справа от текстового поля. Так что теперь набор начнется после просмотра.Спасибо
Надеюсь, это помогло ...
источник
Swift 4, Xcode 9
Мне нравится ответ Pheepster , но как насчет того, чтобы сделать все это из расширения, не требуя кода VC или какого-либо подкласса:
источник
rightView?.frame.size.width ?? 0
paddingLeft
наpaddingLeftCustom
и другой тоже. Если бы я не сделал этого, ошибка, которая следовала бы за мной две недели, появилась бы, когда вы использовали Представления, которые имеют UITextView (например, UISearchBar). Просто ... не устанавливайте имена по умолчанию.в Swift 4.2 и Xcode 10
Первоначально мое текстовое поле выглядит следующим образом.
После добавления отступов в левой части моего текстового поля ...
Таким образом, мы можем также создать правую сторону. (TextFieldName.rightViewMode = .always)
Если вам нужен код типа SharedInstance (пишите один раз, используйте каждую программу), смотрите код ниже.
Теперь вызовите эту функцию следующим образом.
источник
Простое решение Swift 3 - добавьте код для viewDidLoad:
Нет необходимости в смехотворно длинном коде
источник
Используйте мое расширение Swift 5, протестированное:
Как пользоваться
источник
Чтобы создать вид отступа для UITextField в Swift 5
источник
Подклассы UITextField это путь. Откройте игровую площадку и добавьте следующий код:
источник
Вот ответ Haagenti, обновленный до Swift 4.2:
Ссылка: Обновление до Swift 4.2 .
Изменить : Учетная запись для кнопки очистки.
источник
Создайте UIView с необходимым отступом и добавьте его к элементу textfield.leftView и установите элемент textfield.leftViewMode в UITextFieldViewMode.Always
источник
Вставьте этот код в свой
viewDidLoad()
:Меня устраивает :)
источник
Эта строка кода спасла меня:
Для Xamarin.iOS:
Для Свифта:
источник
ScareCrow ответ в Swift 3
источник
В Swift 3. Вы можете использовать пользовательский UITextField с отступом, который установлен в его конструкторе. Не нужно для дополнительного объявления в контроллере.
источник
Простой способ: сделать это, расширив UITextField
Тогда вы можете установить отступ к любому краю следующим образом:
источник
Я предпочитаю использовать
IBDesignable
класс иIBInspectable
свойства, чтобы позволить мне устанавливать отступ с помощью раскадровок XCode и сохранять его многократное использование. Я также обновил код для работы в Swift 4.источник
* Расширение UITextField в Swift 5 *
источник
источник