Я не могу понять, почему это происходит, но у меня есть подкласс UIView, который добавлен в представление моего контроллера представления.Subview получает штрихи за пределами его рамки в родительском представлении
productView = [[SKUProductView alloc]initWithFrame:CGRectMake(60,768, 700, 550)];
[self.view addSubview:productView];
Представления начинается закадровое и анимация на экране на сковороде жесте event.While вида является закадровым, он получает сенсорные события за пределами своей собственной системы. Я разработал работу, переопределив метод hitTest в subview, чтобы вернуть вызов 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 в раскадровке или в коде? Не могли бы вы опубликовать код, если вы это сделаете программным путем? – tanzolone