당신은 부모보기에서 UIView의 방법을
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
를 오버라이드 (override) 할 필요가있다. 히트가 버튼 안에 있으면 버튼을 반환하고, 그렇지 않으면 nil을 반환합니다. withEvent : 메시지를 각 서브 뷰에 서브 뷰는 터치 이벤트를 수신해야하는 결정
이 방법은 pointInside를 전송하여 뷰 계층을 통과 :이이 방법에 대한 토론의 일부입니다. pointInside : withEvent : 이 YES를 반환하면 하위 뷰의 계층 구조가 가로 지릅니다. 그렇지 않으면보기 계층의 분기가 무시됩니다. 이 메소드를 직접 호출 할 필요는 거의 없지만 터치 이벤트를 숨겨서 하위보기의 터치 이벤트를 숨길 수 있습니다.
편집 :
당신이 대대와 인공 지능을 포함하는 UIView 하위이 말, 당신은 구현할 수있는이
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
if (CGRectContainsPoint(bn.frame, point)) {
return bn;
}
return nil;
}
당신의 버튼은 터치 이벤트를 얻을 것이다 그런 식으로 같은 방법 (만약 그들이 아무거나가 그것의 정상에다는 것을 있건 없건간에 그것의 구조 안에). 당신은 다른 작업을 수행 할 필요가 없습니다.
내 UID 디자인으로. 나는 그 (것)들에 엄지 손톱을 가진 단추의 세트가 인터넷에서 짐이었다. 그리고이 과정이 진행되는 동안 인공 지능이 애니메이션으로 나타나지만 버튼을 눌러 전체 화면 이미지를 볼 수 있어야합니다. 버튼 페이지는 단지 미리보기 일뿐입니다. 표준 UIActivityIndicatorView이며 사용할 수있게되어 놀랍습니다. 기본적으로 보인다. 이제는 잘 작동했습니다. 고마워. – Sharky
그런 의미가 있습니다. 나는 내 대답을 고쳐 줄거야! – jrturton