iOS中 UIView 的 hitTest 使用
阿新 • • 發佈:2019-01-03
當父檢視中出現佈局重疊,且都是可以響應使用者操作的物件。例如多個UIButton重疊,UIButton 與 UIScrollView 重疊。
我們想實現在UIScrollView下面的UIButton的響應事件,或者點選 按鈕A 實現 按鈕B 的點選事件。可用 UIView 的 hitTest 方法實現。
// 點選 按鈕1 實現 按鈕2 的點選事件
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
// 第一種
// CGPoint hitPoint = [btn1 convertPoint:point fromView:self];
// if ([btn1 pointInside:hitPoint withEvent:event]){
// return btn2;
// }
// return [self hitTest:point withEvent:event];
// 第二種
if (CGRectContainsPoint(btn1.frame, point)) {
return btn2;
}
return [self hitTest:point withEvent:event];
}