Текст поверх моих изображений с 2 ​​пользовательским интерфейсом не отображается в раскадровке - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть контроллер представления (в раскадровке), и в этом у меня есть изображение пользовательского интерфейса, которое покрывает весь экран (в качестве фона), и оно серого цвета. На этом фоновом изображении у меня есть изображение пользовательского интерфейса lo go и изображение пользовательского интерфейса, которое просто белое. Оба из них (lo go и белая часть) находятся сверху фона. Вверху белой части у меня есть метка 'username' и текстовое поле.

Когда я запускаю приложение, имя пользователя и текстовое поле не отображаются. Вместо этого он просто показывает lo go и белую часть, но не метку имени пользователя и текстовое поле.

Это может быть связано с тем, что они являются 2-мя представлениями пользовательского интерфейса друг над другом и текстом поверх них обоих, но я все еще не знаю, как решить проблему отсюда. Может ли кто-нибудь помочь, пожалуйста?

1 Ответ

1 голос
/ 30 апреля 2020

Я видел, как это происходило раньше ...

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

Более простой способ объяснить:

- image view
  - image view
    - label

отображается как:

- image view
  - label
    - image view

Я никогда не нашел объяснения для почему , но это то, что происходит.

Пара вариантов :

Вставить ваши изображения в качестве подпредставлений UIView или

Вкл. viewDidLoad() явно перенести метку и текстовое поле вперед:

class OrderViewController: UIViewController {

    @IBOutlet var userNameLabel: UILabel!
    @IBOutlet var userNameTextField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        view.bringSubviewToFront(userNameLabel)
        view.bringSubviewToFront(userNameTextField)
    }

}
...