#Selector未解决的标识符函数



在init函数中,#Selector似乎找不到调用函数。

这是类

import UIKit
protocol ExpandableHeaderViewDelegate {
func toggleSection(header: ExpandableHeaderView, section: Int)
}
class ExpandableHeaderView: UITableViewHeaderFooterView {
var delegate: ExpandableHeaderViewDelegate?
var section: Int!
@IBOutlet weak var titleLabel: UILabel!
  override init(reuseIdentifier: String?){
    super.init(reuseIdentifier: reuseIdentifier)
    self.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(selectHeaderView(_:))))
}
@objc func selectHeaderView(gesture: UITapGestureRecognizer){
    let cell = gesture.view as! ExpandableHeaderView
    delegate?.toggleSection(header: self, section: cell.section)
}
required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    self.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(selectHeaderView(_:))))
}

func custonInt(title: String, section: Int, delegate:   ExpandableHeaderViewDelegate){
    self.titleLabel.text = title
    self.section = section
    self.delegate = delegate
}
override func layoutSubviews(){
    super.layoutSubviews()
    self.titleLabel.textColor = UIColor.white
    self.contentView.backgroundColor = UIColor.darkGray
}

}

这是错误:

Use of unresolved identifier 'selectHeaderView'

init函数添加手势识别器找不到selectheaderview。它的表现好像它不是班级的一部分。我在做什么错?

更改以下内容:

self.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(selectHeaderView(_:))))

to:

self.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(selectHeaderView(gesture:))))

您的班级确实没有称为selectHeaderView(_:)的方法。selectHeaderView(_:)。但是,您的班级 dos 有一种方法selectHeaderView(gesture:)。在这种情况下,论点标签确实很重要。_:表示没有外部参数标签。

你应该写

#selector(selectHeaderView(gesture:))

您也可以让Swift决定参数标签

#selector(selectHeaderView)

最新更新