Как показать полный текст местозаполнителя в ios UITextfield? - PullRequest
0 голосов
/ 29 января 2019

Текст местозаполнителя показывает тройные точки, чтобы обрезать текст.

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

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

    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 и результатов.Пожалуйста, продолжайте добавлять баллы, чтобы я мог показать текущее и будущее встроенные изображения, спасибо.

Просмотр IB, настройки и результат приложения

Ответы [ 3 ]

0 голосов
/ 29 января 2019

Вы можете настроить текстовое поле, чтобы решить вашу проблему.поместите этот CustomTextField в свой тип класса текстового поля Раскадровки.здесь я устанавливаю минимальный коэффициент масштабирования до 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
            }
        }
    }
} 
0 голосов
/ 29 января 2019

Вы должны изменить Ограничения Autolayouts с , ведущие , по центру по вертикали с расстоянием и по горизонтали с расстоянием.

Вы также можете обернуть текст с изменением размера текстового поля, используя минимальный размер шрифта .

0 голосов
/ 29 января 2019

В качестве альтернативы вы можете создать свой собственный подкласс UITF и переопределить:

open func placeholderRect(forBounds bounds: CGRect) -> CGRect
...