2015-10-01 4 views
0

В верхней части моего UICollectionViewCell s в моем UICollectionView Я наложил UIButton, который перехватывает касания, чтобы я мог более точно реагировать на события касания. Проблема в том, что теперь представление коллекции больше не получает сообщений didSelectItemAtIndexPath. (По понятным причинам ... кнопка поглотила прикосновение и не сигнализировала коллекционному представлению, что элемент был выбран.)UICollectionViewCell сигнал UICollectionView didSelect

Есть ли способ сообщить в виде собрания, что ячейка выбрана? Я видел подобные вопросы, но никто, кажется, не дает убедительного ответа.

ответ

1

Вы можете переопределить сообщение pointInside:withEvent: на UIView [и подклассы] и вернуть false, чтобы продолжить распространение события касания.

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/occ/instm/UIView/pointInside:withEvent:

class PassThroughButton: UIButton { 
    override func pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool { 
    // do something 
    // then continue event propigation 
    return false 
    } 
} 
+0

Мне очень нравится это решение, не только потому, что решить мою проблему, но я научился распространять штрихи. Спасибо! –

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