Ios 重叠uicontrol

Ios 重叠uicontrol,ios,touch-event,uicontrol,Ios,Touch Event,Uicontrol,我有两个定制的。这些是滚动的轮子 它们的帧重叠。在屏幕截图上,左上角的在右上角的后面。当在重叠区域内启动触摸时,如何开始左侧的跟踪 我开始使用Touch时是这样的: - (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event { if (!insideCircle) return NO; } // pseudo-code 如何将事件传播到响应否的uicontrol后面的视图 我的建议是: 1) 为控制盘创

我有两个定制的。这些是滚动的轮子

它们的帧重叠。在屏幕截图上,左上角的在右上角的后面。当在重叠区域内启动触摸时,如何开始左侧的跟踪

我开始使用Touch时是这样的:

- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
if (!insideCircle) return NO; } // pseudo-code
如何将事件传播到响应否的uicontrol后面的视图

我的建议是:
1) 为控制盘创建UIView子类,例如
WheelView

2) 覆盖
-(BOOL)点内部:(CGPoint)点与事件:(UIEvent*)事件

例如:

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event
{
    CGFloat xOffset = (point.x - self.bounds.size.width / 2);
    CGFloat yOffset = (point.y - self.bounds.size.height / 2);
    CGFloat distanceSqr = xOffset * xOffset + yOffset * yOffset;
    if (distanceSqr > radius * radius)
    {
        // touch point is outside of circle
        return NO;
    }
    return YES;
}
因此,当您返回
NO
时,触摸将传播到下一个视图,即“下方”。但是,当您的圆圈重叠时,这将不起作用-仅当帧重叠时,如屏幕截图所示。

我的建议是:
1) 为控制盘创建UIView子类,例如
WheelView

2) 覆盖
-(BOOL)点内部:(CGPoint)点与事件:(UIEvent*)事件

例如:

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event
{
    CGFloat xOffset = (point.x - self.bounds.size.width / 2);
    CGFloat yOffset = (point.y - self.bounds.size.height / 2);
    CGFloat distanceSqr = xOffset * xOffset + yOffset * yOffset;
    if (distanceSqr > radius * radius)
    {
        // touch point is outside of circle
        return NO;
    }
    return YES;
}
因此,当您返回
NO
时,触摸将传播到下一个视图,即“下方”。但是,当您的圆圈重叠时,这将不起作用-仅当帧重叠时,如屏幕截图所示。

我的建议是:
1) 为控制盘创建UIView子类,例如
WheelView

2) 覆盖
-(BOOL)点内部:(CGPoint)点与事件:(UIEvent*)事件

例如:

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event
{
    CGFloat xOffset = (point.x - self.bounds.size.width / 2);
    CGFloat yOffset = (point.y - self.bounds.size.height / 2);
    CGFloat distanceSqr = xOffset * xOffset + yOffset * yOffset;
    if (distanceSqr > radius * radius)
    {
        // touch point is outside of circle
        return NO;
    }
    return YES;
}
因此,当您返回
NO
时,触摸将传播到下一个视图,即“下方”。但是,当您的圆圈重叠时,这将不起作用-仅当帧重叠时,如屏幕截图所示。

我的建议是:
1) 为控制盘创建UIView子类,例如
WheelView

2) 覆盖
-(BOOL)点内部:(CGPoint)点与事件:(UIEvent*)事件

例如:

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event
{
    CGFloat xOffset = (point.x - self.bounds.size.width / 2);
    CGFloat yOffset = (point.y - self.bounds.size.height / 2);
    CGFloat distanceSqr = xOffset * xOffset + yOffset * yOffset;
    if (distanceSqr > radius * radius)
    {
        // touch point is outside of circle
        return NO;
    }
    return YES;
}

因此,当您返回
NO
时,触摸将传播到下一个视图,即“下方”。但是,当你的圆圈重叠时,这就不起作用了——只有当你的屏幕截图上显示的帧重叠时才起作用。

没关系。圆圈不会消失overlap@Vrol我可以先花点时间测试一下吗?接受答案是一个善意的决定。。。不要强迫任何人这样做,不要问别人it@PetroKorienev嗯,这里的一些人靠它谋生。好意只需点击一下。为什么不免费提供,特别是当它有帮助的时候?顺便说一句,我已经增加了你的答案。没关系。圆圈不会消失overlap@Vrol我可以先花点时间测试一下吗?接受答案是一个善意的决定。。。不要强迫任何人这样做,不要问别人it@PetroKorienev嗯,这里的一些人靠它谋生。好意只需点击一下。为什么不免费提供,特别是当它有帮助的时候?顺便说一句,我已经增加了你的答案。没关系。圆圈不会消失overlap@Vrol我可以先花点时间测试一下吗?接受答案是一个善意的决定。。。不要强迫任何人这样做,不要问别人it@PetroKorienev嗯,这里的一些人靠它谋生。好意只需点击一下。为什么不免费提供,特别是当它有帮助的时候?顺便说一句,我已经增加了你的答案。没关系。圆圈不会消失overlap@Vrol我可以先花点时间测试一下吗?接受答案是一个善意的决定。。。不要强迫任何人这样做,不要问别人it@PetroKorienev嗯,这里的一些人靠它谋生。好意只需点击一下。为什么不免费提供,特别是当它有帮助的时候?顺便说一句,我已经补充了你的答案。