Как отобразить UITextField одно за другим в Swift?

#ios #swift #uikit

#iOS #swift #uikit

Вопрос:

UIKit. Например, у меня есть пять текстовых полей в моем приложении. Все в одном ViewController. Когда я запускаю свое приложение, все эти текстовые поля отображаются одновременно в представлении.

Итак, я хотел бы внести следующие изменения:

  1. Запуск приложения -> Пользователь видит первое текстовое поле -> Нажмите на него, введите информацию -> коснитесь чего-нибудь (например, кнопки или просто завершить редактирование первого текстового поля, не имеет значения) ->
  2. Второе текстовое поле появляется в представлении после первого текстового поля. <..> ->
  3. В представлении появляется третье текстовое поле <..> ->
  4. В представлении появляется четвертое текстовое поле. <..> ->
  5. В представлении появляется пятое текстовое поле.

Кроме того, я хотел бы использовать анимацию, чтобы получить эффект плавного отображения (пока это другая история).

Не могли бы вы мне помочь, пожалуйста?

Ответ №1:

  1. Добавьте текстовое поле в UIStackView.
  2. Скрыть все текстовые поля, кроме первых, с помощью isHidden = true
  3. Установите контроллер представления в качестве делегата всех текстовых полей.
  4. Переопределите один из соответствующих методов делегирования, чтобы получать уведомления при завершении редактирования. Какой из них зависит от того, что вы хотите сделать, и когда редактирование завершится.
  5. Устанавливается isHidden = false для текстового поля, которое должно отображаться в блоке анимации. Используйте анимацию на основе UIView или UIViewPropertyAnimator.

Если один из пунктов неясен, вы еще не готовы к его созданию. Читайте, читайте и экспериментируйте, пока эти моменты не станут понятными. Затем реализуйте их.