Независимо от того, что я делаю, я всегда получаю эту ошибку.Swift 3: непризнанный селектор, отправленный в экземпляр для распознавателя жестов
Это внутри моей cellForItemAtIndexPath
функции:
cell.postCell.profileImage.userView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: "pressedUserImage:"))
и метод действия:
func pressedUserImage(userView: UIImageView) {
print(userView.superview) // error happens here.
Теперь, конечно, мой UserView находится в глубокой иерархии представлений, но она до сих пор работает. По какой-то причине это не так. Даже если я делаю userImage.superview?.superview
и т. Д., Я все равно получаю сообщение об ошибке. Вместо этого я попытался использовать #selector(pressedUserImage(_:)
, но не повезло. Пробовал Selector("pressedUserImage:")
. Ничего.
В каком месте я ошибаюсь?
Update, вот cellForItemAtIndexPath
функция:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellID", for: indexPath) as! Posts
cell.postCell.profileImage.userView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: "pressedUserImage:"))
cell.postCell.buttonView.sharePost.addTarget(self, action: #selector(pressedShareButton), for: .touchUpInside)
return cell
}
postCell
в основном UIView
, который содержит изображение, название, текст.
Вот ошибка:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[project.Posts pressedUserImage]: unrecognized selector sent to instance 0x7a9a65e0'
вы можете поделиться 'функцию cellForItemAtIndexPath'? – ystack
Можете ли вы также указать текст сообщения об исключении – Paulw11
Параметр для обработчика распознавателя жестов - это распознаватель жестов, без касания. Используйте .view на отправителе, чтобы получить отправку. – vacawama