Когда вы работаете с пользовательскими представлениями, используя Xibs, вы должны сначала загрузить их.
Так, например, в вашем классе Slide
вы можете создать статическую функцию, например:
static func createView(with owner: Any) -> Slide {
let nib = UINib.init(nibName: "YourNibName", bundle: nil)
let views = nib.instantiate(withOwner: owner, options: nil)
let view = views[0] as! Slide
view.translatesAutoresizingMaskIntoConstraints = false
return view
}
где YourNibName
должно быть именем вашего файла Xib.
Эта статическая функция может использоваться как:
let slide = Slide.createView(with: self)
// attach the view to a superview
aSuperview.addSubview(slide)
// setup the right constraints
// for example
slide.topAnchor.constraint(equalTo: aSuperview.topAnchor).isActive = true
// ...and so on
Важным моментом является то, чтобы установить в Интерфейсном Разработчике правильное представление для вашей Xib:
Подводя итог, ваш взгляд должен выглядеть следующим образом (обратите внимание, что я переименовал Slide
в SlideView
. Мне кажется, это лучше):
class SlideView: UIView {
@IBOutlet var descriptionImage: UIImageView!
@IBOutlet var descriptionLabel: UILabel!
@IBOutlet var hiLabel: UILabel!
@IBOutlet var loLabel: UILabel!
@IBOutlet var humidityLabel: UILabel!
static func createView(with owner: Any) -> SlideView {
let nib = UINib.init(nibName: "YourNibName", bundle: nil)
let views = nib.instantiate(withOwner: owner, options: nil)
let view = views[0] as! SlideView
view.translatesAutoresizingMaskIntoConstraints = false
return view
}
}