В моем swift
приложении Я создал класс, который делегаты UICollectionViewController
. Кроме того, у меня есть другой класс, ответственный за обработку «UICollectionReusableView».tapGestureRecognizer.location приносит nil в UICollectionView
Таким образом, в первом классе у меня есть метод:
override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "Header", for: indexPath) as! UserProfileHeaderCollectionReusableView
и благодаря этому - в этом методе - у меня есть доступ ко всем кнопкам и меток, сохраненных в окне заголовка, например:
headerView.followButton.isHidden = false
headerView.followButton.addGestureRecognizer(
UITapGestureRecognizer(target: self, action: #selector(followThisUser)))
позже, у меня есть метод followThisUser
:
@objc private func followThisUser(tapGestureRecognizer: UITapGestureRecognizer) {
if (!doIFollow) {
followUser(userId)
} else {
unfollowUser(userId)
}
}
и на основе флага doIFollow
Я выполняю специальный метод.
Я хотел бы дать пользователю отзыв, когда он нажимает кнопку и меняет цвет, как только он нажимает на него. Я пытался получить доступ к этой кнопке, добавив:
let tapLocation = tapGestureRecognizer.location(in: self.userProfileCollectionView)
let indexPath : NSIndexPath = self.userProfileCollectionView.indexPathForItem(at: tapLocation)! as NSIndexPath
методу followThisUser
, но он выдает ошибку:
fatal error: unexpectedly found nil while unwrapping an Optional value
Как я могу получить доступ к followButton
тогда?
Благодаря @Pierce, он прекрасно работает – user3766930
@ user3766930?! - Конечно, удачи! – Pierce