Я думал, что понял большинство основ для повторного использования XIB, но у меня возникли некоторые проблемы.Я создаю UIView
, чтобы представить пользователю вид журнала, и мне нужно использовать его в некоторых случаях.
Мой UIView выглядит следующим образом:
Не полностью завершен вид, но он в настоящий момент
Я назначил класс для UIView
на LogInView
, и в Интерфейсном Разработчике, который я помещаю в него, это показано так:
Использование моего пользовательского LogInView
в UIViewController
Моя проблема здесь * почему представления, которые я добавляю в мой XIB, отображаются там, но когда я используюXIB они не показаны.Вместо этого shadows, cornerRadius и backgroundColor изменяются и отображаются в InterfaceBuilder.
Одно из решений, которые я прочитал, может состоять в том, чтобы загрузить XIB
с использованием Bundle.main.load(...)
, но когда я делаю это, представление отображается дляViewController
становится черным, и я действительно не знаю, где и зачем размещать этот кусок кода.
Код для моего LogInView
следующий.
@IBDesignable class LogInView: UIView {
@IBOutlet weak var logInViewTitleLabel: UILabel!
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
func commonInit() {
self.backgroundColor = .white
self.layer.cornerRadius = 10.0
self.layer.shadowColor = UIColor.darkGray.cgColor
self.layer.shadowOffset = CGSize(width: 5.0, height: 5.0)
self.layer.shadowRadius = 25.0
self.layer.shadowOpacity = 0.9
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
commonInit()
}
override func awakeFromNib() {
super.awakeFromNib()
commonInit()
}
}