【发布时间】:2014-02-15 15:17:01
【问题描述】:
我不知道为什么会这样,但是我有一个 UIView 的子类,它被添加到我的视图控制器的视图中。
productView = [[SKUProductView alloc]initWithFrame:CGRectMake(60,768, 700, 550)];
[self.view addSubview:productView];
视图在屏幕外启动,并会在平移手势事件时在屏幕上生成动画。当视图在屏幕外时,它会在自己的框架之外接收触摸事件。如果触摸事件在其框架之外,我已经通过覆盖子视图中的 hitTest 方法来开发一个解决方法,以将 hitTest 调用返回到父视图。
-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
//Test to determine if view is offscreen or if touch is outside its frame
if (self.frame.origin.y >= 768 || point.x > self.frame.size.width)
{
return [super hitTest:point withEvent:event];
}
else if (point.y < kSKU_SCROLLVIEW_Y_OFFSET)
{
return [_productTabBar hitTest:point withEvent:event];
}
return _productScrollView;
}
但我想知道为什么我的子视图首先会在它自己的框架之外接收触摸事件?
【问题讨论】:
-
您是在情节提要还是在代码中设置 UIPanGesture 识别器?如果您以编程方式执行代码,您可以发布代码吗?
标签: ios uiview parent-child subview