gpt4 book ai didi

ios - 重叠的 UIControl

转载 作者:行者123 更新时间:2023-11-28 20:13:06 25 4
gpt4 key购买 nike

我有两个自定义 UIControl。这些是滚轮。

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

我的 beginTrackingWithTouch 看起来像这样:

- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
if (!insideCircle) return NO; } // pseudo-code

如何将事件传播到响应 NO 的 UIControl 后面的 View ?

overlapping frames

最佳答案

我的建议是:
1) 为你的 wheel 子类化 UIView,例如 WheelView;
2) 覆盖 -(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event
例如:

-(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 时,触摸将传播到下一个 View ,即“下方”。但是,当您的圈子重叠时,这将不起作用 - 仅当框架重叠时,如您的屏幕截图所示。

关于ios - 重叠的 UIControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19369327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com