我问一些不同的情况:
iOS How to make UIButton below UICollectionView receive touch?
但我也不知道是否可以在uiview下面对齐collectionView,没有透明的backgroundColor并且可以接受触摸?
我希望然后我移动手指在蓝色视图触发器集合视图滚动行为,我也希望UIButton接收触摸。
点击测试不是解决方案。
为什么?
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
if ([self pointInside:point withEvent:event]) {
for (UIView *subview in [self.subviews reverseObjectEnumerator]) {
CGPoint convertedPoint = [subview convertPoint:point fromView:self];
UIView *hitTestView = [subview hitTest:convertedPoint withEvent:event];
if (hitTestView) {
return hitTestView;
}
}
return self;
}
return nil;
}
因为当手指处于蓝色视图时它不会被触发。
答案 0 :(得分:0)
您可以使用userInteractionEnabled = YES将UIView(蓝色)子类化,然后使用此hitTest
:
-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
id hitView = [super hitTest:point withEvent:event];
if (hitView == self) return nil; // <--- pass-through if touch on UIView (blue view)
else return hitView; // touch on children (UIButton)
}