Я создал горизонтальный UICollectionView, который отображает 12 месяцев, и мне нужно, чтобы пользователь выбрал один из них, для этого я использовал collectionCell.isUserInteractionEnabled=true
и UITapGestureRecognizer
, но это возвращает месяцы на всей странице.
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let collectionCell = collectionView.dequeueReusableCell(withReuseIdentifier: "monthCollectionView", for: indexPath as IndexPath) as! AttendenceCollectionViewCell
collectionCell.collectionViewCellLabel.text=monthArray[indexPath.item]
collectionCell.backgroundColor = UIColor.clear
collectionCell.isUserInteractionEnabled=true
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(customMonth(month:tap:)))
collectionCell.collectionViewCellLabel.addGestureRecognizer(tapGesture)
collectionCell.collectionViewCellLabel.isEnabled=true
collectionCell.isExclusiveTouch=true
customMonth(month:monthArray[indexPath.item],tap: tapGesture)
return collectionCell
}
@objc func customMonth(month:String,tap:UITapGestureRecognizer){
print("\n",month,"\n")
Выход:
Авг
сент.
окт
ноя
Дек
апр
март
февраль
Ян