좋아,이 작업은 단순해야하지만 미친 듯이 보냈습니다.UIScrollView를 통한 UIView 메뉴
나는 화면의 측면과 하단에 정적 투명 도구 모음 뒤에 UIScrollView를 표시하려고합니다. 스크롤 뷰 (UIScrollView의 하위 클래스)와 오버레이 (UIView의 하위 클래스)가 모두 RootViewController의 하위 뷰가되도록 구조가 현재 설정되어 있습니다.
scrollView = [[EMDrawScrollView alloc]initWithFrame:CGRectMake(0, 0, winSize.width, winSize.height)];
scrollView.userInteractionEnabled = YES;
[self.view addSubview:scrollView];
overlay = [[EMDrawOverlayView alloc]initWithFrame:CGRectMake(0, 0, winSize.width, winSize.height)];
overlay.userInteractionEnabled = NO;
[self.view addSubview:overlay];
문제는 내가 overlay.userInteractionEnabled 사용하도록 설정하면 모든 터치 레이어로 이동하고있는 ScrollView를 얻을 수 있다는 것입니다. 그러나 사용자 상호 작용을 해제하면 scrollView가 제대로 작동하지만 오버레이와 상호 작용할 수 없습니다.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *t1 = [[[event allTouches]allObjects]objectAtIndex:0];
CGPoint loc = [t1 locationInView:self.view];
if (CGRectContainsPoint(overlay.rightToolbar.frame, loc)) {
overlayTouched = YES;
[overlay touchesBegan:touches withEvent:event];
} else {
overlayTouched = NO;
[scrollView touchesBegan:touches withEvent:event];
}
}
나는 느낌이 하나의 수정은 별도의 UIViews로 도구 모음을 설정하는 것입니다 : 나는 RootViewController 이러한 수집하고 접촉을 처리하고과 같이 올바른 객체로 전송 관련하여
오버레이가 전체 화면을 차지하지 않도록 뷰 컨트롤러에 서브 뷰로 추가하십시오. 그러나 다른 방법이 있다면 이것을 피하고 싶습니다.