自定义XIB不显示子视图,也不在Interface Builder中呈现

时间:2019-05-01 16:59:35

标签: ios swift uiview interface-builder xib

我以为我已经掌握了重用XIB的大多数基础知识,但是在这里遇到了一些麻烦。我正在创建一个UIView来向用户显示登录视图,在某些情况下我需要重用它。

我的UIView是以下

LogInView

  

尚未完全完成视图,但是暂时无法完成

我已将类分配给UIViewLogInView,在Interface Builder中,我将其放入其中,如下所示。

Main IB

  

在UIViewController中使用我的自定义LogInView

我的问题是*为什么我添加到XIB的视图在那里显示,但是当我使用XIB时却没有显示。阴影,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()

}    

}

0 个答案:

没有答案