2012-05-07 2 views
0

프레임 (4,8), (13,13)이있는 하위 뷰 UI 버튼이 있습니다.iOS UIButton은 프레임 외부에서 터치를 받지만 프레임 내부에서는 터치하지 않습니다.

터치 A는 수퍼 뷰를 기준으로 (4,16) 위치에 있지만 버튼 경계 내에서 수퍼 뷰로 보내집니다. 창 좌표에서 이것은 (49,131)입니다.

터치 B는 (48,131)의 창 좌표로 왼쪽으로 한 픽셀이 발생하지만 범위를 벗어난 경우에도 하위보기 단추로 전송됩니다. 뷰는 UIButton에 (-1,7) 위치를보고합니다.

를 터치

<UITouch: 0x7b2ddeb0> phase: Ended tap count: 1 
window: <DebugWindow: 0x791357f0; baseClass = UIWindow; frame = (0 0; 320 480); layer = <UIWindowLayer: 0x791358d0>> 
view: <QueueOverlayCellView: 0x7b1ca320; frame = (2 2; 269 30); tag = 1; layer = <CALayer: 0x7b1ca3a0>> 
location in window: {49, 131} previous location in window: {49, 131} 
location in view: {4, 16} previous location in view: {4, 16} 

터치 B

<UITouch: 0x7b442e90> phase: Ended tap count: 1 
window: <DebugWindow: 0x791357f0; baseClass = UIWindow; frame = (0 0; 320 480); layer = <UIWindowLayer: 0x791358d0>> 
view: <TableButton: 0x7b1cada0; baseClass = UIButton; frame = (4 8; 13 13); opaque = NO; layer = <CALayer: 0x7b1cae40>> 
location in window: {48, 130} previous location in window: {48, 130} 
location in view: {-1, 7} previous location in view: {-1, 7} 

수퍼 사용자 지정 pointInside 방법을 구현하지 않습니다.

하위보기의 경계 밖으로 터치가 하위보기로 전달 될 수 있으며 하위보기 경계에있는 터치가 수퍼보기로 전달되는 방법은 무엇입니까?

답변

0

해결책은 아니지만 내 자신의 질문에 대한 해결책입니다.

이 이상한 동작은 너무 작은 단추 (이 경우 13x13)에서 발생하는 것처럼 보입니다. 버튼 크기를 확장하고 이미지 배치에 contentInsent를 사용하면 터치 할 수있는 영역 (이 경우 43 픽셀 너비로 확대)이 버튼의 절반 정도로 확대되었습니다.

관련 문제