2015-11-17 2 views
1

Я добавляю несколько представлений в коде ниже:Tap жест реагирует только на последний просмотр

for var i=0;i<sets.count;i++ { 
     setView=UIView(frame: CGRectMake(0,y,400,65)) 
     x=20 

     for var c=0;c<sets[i].count;c++ { 
      imageView=UIImageView(frame: CGRectMake(x,0,60,60)) 
      dieFaces=types[sets[i][c]] as! NSArray 
      file="\(dieFaces![0]).png" 
      print(file) 
      imageView!.image=UIImage(named: file) 
      setView!.addSubview(imageView!) 
      x+=60 
     } 
     setView!.tag=i 
     setView!.addGestureRecognizer(tap) 
     scrollView.addSubview(setView!) 
     y+=66 
    } 

Только последний вид добавляемой в ответ на кране. Что я делаю не так?

ответ

1

Кран UITapGestureRecognizer может быть прикреплен только к одному виду, поэтому отвечает только последний вид. Вам нужно будет создать новый распознаватель жестов для каждого setView, к которому вы его привязываете.

+0

Это сделало трюк: setView! .addGestureRecognizer (UITapGestureRecognizer (target: self, action: Selector ("handleTap:"))) Спасибо! –

1

UIGestureRecognizer можно добавить только к одному виду. Поэтому, когда вы добавляете его в другой, он просто удаляется из предыдущего представления.

Я могу предложить два варианта:

  1. Добавить распознаватель в надтаблицы. В этом случае это UIScrollView
  2. Или создайте больше распознавателей (по одному для каждого вида) и используйте одну и ту же цель и действие.
Смежные вопросы