更新到Xcode 8.1之后,我们的故事板和xib就像往常一样。如果我们创建一个新的xib / view / storyboard,我们就无法在新视图中看到新添加的元素。
这两个都是xib文件。左侧是为更新而创建的,右侧是在更新后创建的。你不能看到按钮尽管它在所有东西之上并且有禁止填充视图。它还有文本内容,没有大小的类。
我知道有很多问题可以解释这可能是规模化的课程。
why storyboard ui elements not showing on UIViewController in xcode 6?
Storyboard UI Elements not displaying in editor
如果我们向其添加新元素,则它们直接不可见。还将新的ViewController添加到" old"如果我们向其添加元素,它就不会显示其内容。
这里发生了什么,我该如何解决?
答案 0 :(得分:2)
例如,我们有 TopView (我的CustomView):
import UIKit
@IBDesignable
class TopView: UIView {
//MARK:- IB Outlets
var contentView:UIView?
//MARK:- Lifecycle
override func awakeFromNib() {
super.awakeFromNib()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupThisView()
}
override init(frame: CGRect) {
super.init(frame: frame)
setupThisView()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
setupThisView()
contentView?.prepareForInterfaceBuilder()
}
//MARK:- Lifecycle methods
private func setupThisView(){
guard let view = loadViewFromNib() else { return }
view.frame = bounds
view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
addSubview(view)
contentView = view
}
func loadViewFromNib() -> UIView? {
let nibName = String(describing: TopView.self)
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: nibName, bundle: bundle)
return nib.instantiate(withOwner: self,options: nil).first as? UIView
}
}
3.在 Storyboard 中添加 UIView ,并将视图的类设置为 TopView
如果 TopView 没有 故事板,那么(通常会发生这种情况):
还是?
p.s我只是从我的答案中复制这个:Custom view (xib) not visible on storyboard
答案 1 :(得分:-1)