gpt4 book ai didi

iOS 定义对象的可触摸区域,将触摸限制在 self 的 subview 上

转载 作者:行者123 更新时间:2023-11-29 04:05:58 26 4
gpt4 key购买 nike

我有一个子类 UIView,我将其称为 customView。我希望启用触摸,以便用户可以操作具有手势识别器和其他控件的 subview ,但我希望 View 本身不可触摸,以便在 View 下方绘制的 View 仍然是可触摸的。换句话说,customView 将绘制在应用程序中其他 View 的顶部,但我仍然希望下面的 View 是可触摸的,同时允许触摸 customView 的 subview 。

我尝试像这样使用touchesBegan,但这不起作用。有任何想法吗?感谢您的阅读!

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];

//I've tagged the views that I want to be touchable.
if ([touch view].tag == 1000 || [touch view].tag == 2000 || [touch view].tag == 3000) {
self.userInteractionEnabled = YES;
} else {
self.userInteractionEnabled = NO;
}
}

最佳答案

您需要做的是在您的自定义 View 中实现以下方法:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
//check if one of the subviews was hit, if so forward the touch event to it
for (UIView *view in self.subviews){
if (CGRectContainsPoint(view.frame, point))
return view;
}

// use this to pass the 'touch' upward in case no subviews trigger the touch
return [super hitTest:point withEvent:event];
}

关于iOS 定义对象的可触摸区域,将触摸限制在 self 的 subview 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15222652/

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