Layers are for drawing, not handling events. To respond to touch events, you generally need to be a subclass of UIResponder (which CALayer is not). So, how have you put this layer over the UITableView? If it really is a CALayer, then this isn't going to work; you need to use a UIView. If it's really a UIView that you just called a layer, then provide some information about how you created the view. The most likely cause for a view to not respond is for hitTest:withEvent:
to fail as described in the UIView docs:
This method ignores views that are hidden, that have disabled user interaction, or have an alpha level less than 0.1.