Place UIView on top of all other views
[tableView bringSubviewToFront:subSelectionView];
or if don`t work try
[viewController.view bringSubviewToFront:subSelectionView];
In Swift you can do this:
self.view.bringSubviewToFront(theViewToMoveToFront)
If I read your question right your problem is that you can't actually tap on the button in your new view that's on top of the tableview?
And when you tap it, the UITableView below responds?
This means that the UIButton does not recognize it is tapped, and the event goes to the next subview below it to be processed.
Now, there are many possible causes for such behavior - you may have user interaction disabled for it or the UIView, it may it's Enabled property set to NO or it may be beyond the bonds of the UIView (iOS automatically assumes that if a tap is outside of the bounds rectangle it missed the receiver).
Also, taps are ignored if your alpha is set to 0.0.
You should check all of the above.
There is a method bringSubViewToFront of UIView instance. You can use that method.
e.g.
UIVIew *yourSubView;
[yourMainView addSubView:yourSubView];
[yourMainView bringSubviewToFront:yourSubView];
EDIT
in your case it should be like,
[[tableView cellForRowAtIndexPath:indexPath] insertSubview:subSelectionView aboveSubview:self.view];
[[tableView cellForRowAtIndexPath:indexPath] bringSubviewToFront:subSelectionView];