2016-02-16 5 views
0

У меня есть UILabel в ячейке просмотра коллекции, и когда я его выбираю, я хочу, чтобы фон метки менял цвет, но ничего не происходит, когда я нажимаю на ячейку? Почему это и как я могу это исправить? в консоли ничего не печатается.Почему didSelectItemAtIndexPath не получает вызов?

class newview: UIViewController,UICollectionViewDataSource, UICollectionViewDelegate{ 
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 
    print("called") 
    var cell: customcell = timecollection.cellForItemAtIndexPath(indexPath) as! customcell 

    cell.clabel.tag = indexPath.item 
    let tapGesture = UITapGestureRecognizer(target: self, action: "choose:") 
    cell.clabel.addGestureRecognizer(tapGesture) 
    cell.clabel.userInteractionEnabled = true 

    cell.clabel.textColor = UIColor.whiteColor() 
    cell.clabel.layer.borderWidth = 0.5 
    cell.clabel.layer.borderColor = UIColor.whiteColor.CGColor 

    } 

func choose(gest: UITapGestureRecognizer){ 
    let label: UILabel = gest.view as! UILabel 
    label.backgroundColor = UIColor.whiteColor 
    } 
} 
+3

ли вы установить делегат? –

+1

Вы внедрили 'UICollectionViewDelegate' и задали делегат в коллекции? – Michael

+0

Да, я сделал это. – stackerleet

ответ

1

Я думаю, что вы нажимаете на этикетку, чтобы изменить цвет этикетки. didSelectitemAtIndexpath не будет вызываться, если вы нажмете метку. Для этого вам нужно добавить UITapGestureRecognizer на свой ярлык.

В вашей ячейкеForRow попробуйте установить label.tag = indexPath.row, а затем добавьте tapGesture на этикетку. И в цель этого изменить цвет метки. И не забудьте установить userInteractionEnable = true как label.

EDIT

@IBAction func btnTapped(gest: UITapGestureRecognizer) { 
     print("Called") 
     let label:UILabel = (gest.view as! UILabel) // Type cast it with the class for which you have added gesture 
     label.backgroundColor = UIColor.redColor() 
    } 
+0

Я обновил свой код с вашими советами, но как мне получить доступ к фонам меток и т. Д. В функции жеста? – stackerleet

+0

см. Правки, пожалуйста, – iAnurag

+0

Когда я нажимаю на ячейку I, консоль не печатает с именем – stackerleet

Смежные вопросы