Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Пользовательский UIView - автомакет не применяется

Автор вопроса: SamОтветов: 1

Моя сцена регистрации имеет собственный UIView на сцене. Применяются ограничения автомакета, как показано на следующем экране. Желтый цвет указывает на пользовательский вид. введите здесь описание изображения

Для пользовательского представления в инспекторе удостоверений установлено значение RegisterView. Класс RegisterView просто загружает XIB:

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    NSBundle.mainBundle().loadNibNamed("RegisterUserView", owner: self, options: nil)
}

В XIB применяется автомакет, поэтому он отображается следующим образом:

введите здесь описание изображения

Однако, когда я запускаю приложение, оказывается, что ограничения автомакета не применялись:

введите здесь описание изображения

Нужно ли добавлять код, чтобы применить ограничения макета?

  • Вы применили ограничения к дочерним представлениям вашего пользовательского представления, но когда вы добавляете это представление в другое представление, скажем, в представление вашего ViewController, вам также необходимо применить ограничение к этому объекту customView, чтобы я мог компоновать себя по отношению к его родителю Посмотреть. Gandalf 24.11.2015

iosuiviewautolayoutxib

Ответы

Ответ 1 · vinbhai4u

Я попробовал что-то вроде ниже, и это сработало

override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)

        self.customSubView = CustomView1.loadFromNibNamed("CustomView") as! CustomView1

        customSubView.frame = _CustomSubView.frame
        customSubView.frame.origin = CGPoint(x: 0, y: 0)
        self._CustomSubView.addSubview(customSubView)
    }

Надеюсь, поможет

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы