1. 程式人生 > >iOS中 UIView 的 hitTest 使用

iOS中 UIView 的 hitTest 使用

當父檢視中出現佈局重疊,且都是可以響應使用者操作的物件。例如多個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]; }