繁体   English   中英

使用Swift从Xib / nib实例化UIView

[英]Instantiating UIView from xib/nib using Swift

尝试按以下方式调用此函数时,收到错误的Ambiguous reference to member 'TimelineSectionHeaderView'

if let view = TimelineSectionHeaderView.instantiateFromNib() {
    return view
}

我在这里做错了什么?

import UIKit

class TimelineSectionHeaderView: UIView {

  @IBOutlet weak var dayLabel: UILabel!
  @IBOutlet weak var dateLabel: UILabel!

  class func instantiateFromNib() -> TimelineSectionHeaderView? {
      let x = UINib(nibName: "timelineSectionHeader", bundle: nil).instantiate(withOwner: nil, options: nil).first as? TimelineSectionHeaderView
      print(x ?? "no value")
      return x
  }
}

您需要在下面删除此行:-

if let view = TimelineSectionHeaderView.instantiateFromNib() {
    return view
}

创建一个这样的实例方法:

func instantiateFromNib() -> TimelineSectionHeaderView? {
      let x = UINib(nibName: "timelineSectionHeader", bundle: nil).instantiate(withOwner: nil, options: nil).first as? TimelineSectionHeaderView
      print(x ?? "no value")
      return x
  }

现在在您的ViewController中,您可能已经使用该outlet变量创建了TimelineSectionHeaderView outlet ,然后像这样调用它:

if let view = timelineViewInstanceVariable.instantiateFromNib() {
    return view
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM