只是为了确保我理解你的问题,你有UICollectionView
黄色和UIbutton
粉红色,对吗?
如果是这样,您似乎想以黄色拦截按钮的超级视图之外的 touchUpInside 事件。你可以看看这个处理某种问题的答案。
即使您最终找到了问题的解决方案,为了澄清我的答案,如果您想与UIButton
不在其父视图框架内的对象交互,您可能需要实现- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
父视图的方法(此处为UICollectionViewCell
):
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
if (!self.clipsToBounds && !self.hidden && self.alpha > 0) {
for (UIView *subview in self.subviews.reverseObjectEnumerator) {
CGPoint subPoint = [subview convertPoint:point fromView:self];
UIView *result = [subview hitTest:subPoint withEvent:event];
if (result != nil) {
return result;
}
}
}
return nil;
}
(感谢诺姆!)