如何与孩子UIView在父UIView范围之外绘制可能的交互?

时间:2012-03-12 01:26:43

标签: ios uiview parent

我有一个类似混音器的东西,当我触摸按钮时会打开音轨音量。

为了避免使视图大于它所需要的,我正在绘制范围之外的音量滑块。问题是,现在,我的触摸是由那些滑块下面的东西处理而不是它们自己的滑块。

如果UIView孩子在父母身边以外的地方接受触摸,但是高于其他任何东西,我该如何让他们接触?

这可能吗?

我尝试了以下链接中建议的点击测试方法但没有成功:

interaction beyond bounds of uiview

谢谢,

致以最诚挚的问候,

Nuno Santos

2 个答案:

答案 0 :(得分:1)

我找到了解决这个问题的方法。基本上我需要覆盖方法

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

其中

“返回一个布尔值,指示接收器是否包含指定的点。”

首先,我用超级视图测试点。如果它返回none,我将测试在父边界之外绘制的对象。

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
    if ([super pointInside:point withEvent:event])
    {
        return YES;
    }
    else
    {
        id elem;

        NSEnumerator * enumerator = [tracks objectEnumerator];

        while(elem = [enumerator nextObject])
        {
            LKTrack *track = (LKTrack*) elem;

            if ([track pointInside:[self convertPoint:point toView:track] withEvent:event])
            {
                return YES;
            }
        }
    }

    return NO;
}

答案 1 :(得分:-1)

在上面的答案中,什么是'曲目',你是如何得到它的?