Текст-заполнитель действительно показывает тройные точки, чтобы отрезать текст.
Текст не занимает даже половины ширины текстового поля, а три точки длиннее текста. Есть ли способ войти внутрь поля и настроить порог, чтобы избежать отсечки?
Я знаю программный способ и использую его на данный момент, чтобы изменить размер текста-заполнителя, пока он не подойдет.
let labelKeyPath: String = "_placeholderLabel"
var label : UILabel = self.Distance.value(forKeyPath: labelKeyPath) as! UILabel
label.adjustsFontSizeToFitWidth = true
label = self.FocalLength.value(forKeyPath: labelKeyPath) as! UILabel
label.adjustsFontSizeToFitWidth = true
Настоящим я добавляю несколько изображений текущих настроек и результатов IB. Пожалуйста, продолжайте добавлять точки, чтобы я мог показать текущие и будущие встроенные изображения, спасибо.
Зачем мне расширять текстовое поле, оно уже слишком велико для значения. Проблема в том, что результат больше, чем заполнитель, и это хорошо вписывается, так почему бы не заполнитель? Кроме того, почему три точки шире, чем одна буква, которая мне здесь нужна?





В качестве альтернативы вы можете создать свой собственный подкласс UITF и переопределить:
open func placeholderRect(forBounds bounds: CGRect) -> CGRect
Спасибо. Это работает. Я тоже переместил исходную точку на несколько пикселей.
Вы можете настроить текстовое поле, чтобы решить проблему. поместите этот CustomTextField в тип класса текстового поля Storyboard. здесь я устанавливаю минимальный коэффициент масштабирования на 0,3. что помогает исправить...
class CustomTextField: UITextField {
override func layoutSubviews() {
super.layoutSubviews()
for subview in subviews {
if let label = subview as? UILabel {
label.minimumScaleFactor = 0.3
label.adjustsFontSizeToFitWidth = true
}
}
}
}
вы можете настроить MinimumScaleFactor для желаемого значения.
Вы должны изменить Ограничения автомакетов на ведущий, центрировать по вертикали на расстояние и горизонтальное пространство на расстояние.
Вы также можете обернуть текст, изменив размер текстового поля, используя минимальный размер шрифта.
Спасибо. Не уверен, как это исправить с этим. Моя строка с полями находится в StackView. Просто чтобы лучше понять, что вы имеете в виду, можете ли вы с помощью приведенного выше текста объяснить, как это должно работать и ожидаемый результат?
Вы должны установить ограничения Autolayouts Textfield Leading: 0, Center по вертикали View, Top: 0 и Bottom: 0. А также вы можете изменить минимальный размер шрифта UITextField для переноса в textFiled.
Я понял теперь, что вы написали. Спасибо. Я пробовал до обнуления ограничений, но не вместе с размером шрифта.
просто измените ширину текстового поля, и вы получите ожидаемый результат. Заполнитель обрезается, так как ширина текстового поля не соответствует ожидаемому размеру заполнителя.