Swift 在viewcontroller中使用自定义uiview
我正在尝试使用xib文件中的自定义uiview。我是初学者,不知道从哪里开始。到目前为止,我已经知道了,但是我不知道应该将占位符视图设置为什么 编辑:全视图控制器:Swift 在viewcontroller中使用自定义uiview,swift,uiview,uiviewcontroller,xib,Swift,Uiview,Uiviewcontroller,Xib,我正在尝试使用xib文件中的自定义uiview。我是初学者,不知道从哪里开始。到目前为止,我已经知道了,但是我不知道应该将占位符视图设置为什么 编辑:全视图控制器: import UIKit class Viewcontroller: UIViewController { @IBOutlet weak var placeholderView: UIView! override func viewDidLoad() { super.
import UIKit
class Viewcontroller: UIViewController {
@IBOutlet weak var placeholderView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
placeholderView = view
}
class func instanceFromNib() -> CustomView {
let view = UINib(nibName: "CustomView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! CustomView
return view
}
A.让我假设您有一个名为“TestView”的xib文件。也让我假设您有一个名为“TestView”的子类文件
UIView
B.选择您的xib文件。并选择文件的所有者。并将该类设置为TestView(子类文件的名称)。
C.使用Interface Builder打开xib文件。选择“自定义视图”。(在中间窗格中)将此视图连接到您的UIView
swift文件。例如,将其命名如下@IBVAR自定义视图:NSView!
D.此子类文件应具有以下内容
import UIKit
class TestView: UIView {
@IBOutlet var contentView: UIView!
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
private func commonInit() {
Bundle.main.loadNibNamed("TestView", owner: self, options: nil)
addSubview(contentView)
contentView.frame = self.bounds
}
}
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var testView: TestView!
override func viewDidLoad() {
super.viewDidLoad()
}
}
打开故事板。将自定义视图拖放到视图控制器场景中。在identity inspect下,将类名设置为TestView。
F.IBOutlet连接视图控制器中的自定义视图对象,如下所示
import UIKit
class TestView: UIView {
@IBOutlet var contentView: UIView!
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
private func commonInit() {
Bundle.main.loadNibNamed("TestView", owner: self, options: nil)
addSubview(contentView)
contentView.frame = self.bounds
}
}
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var testView: TestView!
override func viewDidLoad() {
super.viewDidLoad()
}
}
仅此而已。“使用xib文件中的自定义uiview”并不能说明全部情况。该
UIView
对象将在何处以及如何使用?我目前在作为占位符的uiviewcontroller中有一个UIView。我正在尝试用不同的CustomView替换占位符uiview。我试图从第一个customView开始,但当我设置Placeholder View=View时,它并没有改变。这四行代码来自哪里?除非您指定类名,否则其他人将无法知道您在哪里编写代码。我发布了整个viewController NowPlaceholder view=view不做任何事情抱歉没有具体说明,但我最终需要将占位符视图更改为多个不同的customView,这样我就不能只进入故事板,将类更改为一个customView