Как реализовать/показать следующее всплывающее окно над текстовым полем?

Я пытаюсь реализовать следующие функции в своем проекте iOS. Вот скрин,

Как реализовать/показать следующее всплывающее окно над текстовым полем?

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

Дело 1: если пользователь не ввел адрес электронной почты или ввел неправильный адрес электронной почты, он отобразит сообщение/представление с надписью «Введите действительный адрес электронной почты».

Случай 2: если пользователь не ввел номер мобильного телефона или ввел неправильный номер мобильного телефона, тогда будет показано сообщение/представление с надписью «Введите действительный номер мобильного телефона».

Как добиться этого с помощью Swift?

Один из способов — создать uiview прямо над текстовыми полями и сохранить их высоту равной нулю. Когда есть ошибка, вы можете анимировать их, увеличив их высоту и сделав их видимыми. Используйте автоматический макет или раскадровку

Aakash Dave 30.05.2019 09:28
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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
1
1 249
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете создать Посмотреть поверх них и сделать его скрытым, а также когда адрес электронной почты неправильный. Вы можете отобразить Посмотреть.

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

Mallikarjun Hanagandi 30.05.2019 10:42

Я думаю, чтобы показать подчеркивание и показать небольшое изображение в правом конце UITextField, вы должны были сделать подкласс UITextField. В том же подклассе вы можете добавить всплывающее окно в качестве подпредставления, а также отображать и скрывать в соответствии с вашими требованиями из методов делегата UITextField.

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

Вы можете использовать popoverPresentationController, чтобы получить popover на любой из ваших textFields.

1. Создайте UIViewController с UILabel внутри.

class PopoverVC: UIViewController {
    @IBOutlet weak var textLabel: UILabel!

    var text: String?

    override func viewDidLoad() {
        super.viewDidLoad()
        self.textLabel.text = self.text
    }
}

2. Вы ViewController создаете экземпляр PopoverVC всякий раз, когда хотите представить message. Представьте его как popoverPresentationController и передайте экземпляр textField, над которым вы хотите представить message, т.е.

class ViewController: UIViewController, UIPopoverPresentationControllerDelegate {
    @IBOutlet weak var textField: UITextField!

    @IBAction func onTapButton(_ sender: UIButton) {
        let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PopoverVC") as! PopoverVC
        controller.text = "Enter valid Mobile Number"
        controller.modalPresentationStyle = .popover
        controller.preferredContentSize = CGSize(width: 300 , height: 70)

        let popover = controller.popoverPresentationController
        popover?.delegate = self
        popover?.permittedArrowDirections = .down
        popover?.sourceView = self.textField
        popover?.sourceRect = self.textField.bounds
        self.present(controller, animated: true, completion: nil)
    }

    func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
        return .none
    }
}

Выход:

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