Как показать полный текст заполнителя в поле UIText ios?

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

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

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

    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, настройки и результат приложения

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

Parth Dhorda 29.01.2019 12:42

Зачем мне расширять текстовое поле, оно уже слишком велико для значения. Проблема в том, что результат больше, чем заполнитель, и это хорошо вписывается, так почему бы не заполнитель? Кроме того, почему три точки шире, чем одна буква, которая мне здесь нужна?

iPadawan 30.01.2019 15:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
1 327
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

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

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

Спасибо. Это работает. Я тоже переместил исходную точку на несколько пикселей.

iPadawan 30.01.2019 15:03

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

karthik 30.01.2019 15:07

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

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

Спасибо. Не уверен, как это исправить с этим. Моя строка с полями находится в StackView. Просто чтобы лучше понять, что вы имеете в виду, можете ли вы с помощью приведенного выше текста объяснить, как это должно работать и ожидаемый результат?

iPadawan 30.01.2019 15:09

Вы должны установить ограничения Autolayouts Textfield Leading: 0, Center по вертикали View, Top: 0 и Bottom: 0. А также вы можете изменить минимальный размер шрифта UITextField для переноса в textFiled.

Parth 31.01.2019 14:19

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

iPadawan 02.02.2019 13:59

Другие вопросы по теме