У меня есть пользовательское представление (xib
), в котором есть UIButton
, я сделал id IBDesignable
следующим образом:
UserView.swift
import UIKit
@IBDesignable
class UserView: UIView {
@IBOutlet var view: UIView!
@IBOutlet weak var userButton: UIButton!
override init(frame: CGRect) {
super.init(frame: frame)
load()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
load()
}
fileprivate func load() {
Bundle.main.loadNibNamed("UserView", owner: self, options: nil)
addSubview(view)
self.frame = bounds
}
}
UserView.xib
- Добавил UIButton и установил ограничения
- Установите владельца файла:
UserView
Раскадровка
Я добавил UIView к элементу панели Bar Button Item
и назначил класс UserView, но ничего не рендерится, и я получил следующую ошибку сборки:
ошибка: IB Designables: не удалось отобразить и обновить состояние автоматического макета для FoodViewController (bR3-Kz-wX7): агент выдал исключение.
Моя текущая среда: Xcode 9, Swift 4