한 번의보기에서 이벤트를 UITableView
으로 전달하려고했습니다. 하지만 문제가 생겼습니다. 도면에서 관성 스크롤을 생성하기 위해 UITableView로 이벤트 전달
UITableView
입니다. 노란색보기는 을 사용하여
UITableView
의 중간에 전달하는
UIView
입니다. 빨간색보기는
UIButton
입니다.
목표는 노란색보기에서 아래쪽의 UITableView
까지 위쪽 및 아래쪽 패닝 터치를 전달하는 것입니다. 그러나 빨간색 UIButton
을 두드리는 것은 계속 작동합니다.
나는 두 가지 주요 접근 방식 모두에 문제가 있습니다.
첫 번째 방법은 의 contentOffset
을 설정하는 데 사용할 수있는 노란색보기에 UIPanGestureRecognizer
을 추가하는 것입니다. 문제는 테이블 뷰의 관성 스크롤이이 방법으로는 작동하지 않는다는 것입니다.
두 번째 방법은 노란색보기에서 hitTest:withEvent:
을 사용하여 터치를 전달하는 것입니다. 터치 노란보기 시작할 때
-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
if([self.button_red pointInside: [self convertPoint:point toView:self.button_red] withEvent:event]) {
return self.button_red;
} else {
return [self.view_table hitTest:CGPointMake(self.view_table.width/2.0,self.view_table.height/2.0) withEvent:event];
}
}
hitTest:withEvent:
노란색보기의 팬 제스처를 UITableView
으로 전달하는 것이 빨간색 단추가 계속 작동하는 방식과 빨간색 단추에서 시작되는 끌기를 허용하는 방식이 다른가요? 이 기능을 사용하려면 노란색보기에서 touch event methods을 무시해야합니까? 관성 스크롤을 유지하면서이 모든 작업을 수행 할 수 있습니까?
UITableView에서 tableHeaderView로 yellowView를 설정할 수 있습니까? –
이것은 좋은 생각이지만 refreshControl은 화면 상단에서 끝납니다. refreshControl을 노란색보기 아래에 유지하고 싶습니다. –
좋아요. 시도해 보면 refreshControl도 맨 위에옵니다. [tableView addSubview : yellowView]; [tableView setContentInset : CGPointMake (0, CGRectGetHeight (yellowView.frame))]; –