2010-06-10 3 views
1

Greets. 내 문제에 대해 어떻게 든 상세한 설명과 내가 이미 한 일과 내가 할 수없는 일.UIButtons는 네이티브와 같은 키보드 동작을 만듭니다.

iPhone의 키보드와 비슷한 동작을 만들고 싶습니다. 기본적으로, 사용자가 버튼을 누르고 사용자가 해당 버튼을 탭할 때보기가 나타나기를 원합니다.

이 작업을 수행했습니다.

사용자가 버튼의 영역에 손가락을 놓으면 버튼을 놓을 때 "물건을 다하는"동작을 트리거하려고합니다.

이 또한 할 수있었습니다.

모든 버튼이 가까이에 있으므로 (키보드와 같이) 사용자가 누른 버튼 이외의 버튼을 선택하지 않기 때문에 - (BOOL)을 사용하여 버튼의 히트 영역을 줄였습니다. : (CGPoint) point withEvent : (UIEvent) 이벤트 함수입니다.

사용자가 버튼을 누르고 손가락을 떼지 않고 버튼 영역 바깥으로 드래그하면 다른 동작을 트리거해야합니다. 이것은 첫 번째 문제입니다 ...이 기능은 사용자의 손가락이 버튼의 영역과 멀리 떨어져있을 때만 트리거되며 이번에는 포인트 내부 기능이 내 친구가 아닙니다. 버튼 영역에서 벗어난 순간에 사용자 손가락을 "왼쪽"으로 탐지하는 방법은 무엇입니까? 당신이 인식하지 않은 경우

이 ... 두 번째 문제는 드래그 입력을 함께 관련 문제 1.

했다. 다시 말하지만, 드래그 종료와 같이 영역을 제한해야합니다. 하지만 저는이 중 하나를 풀면 다른 하나는 같다고 생각합니다. 문제는 키보드와 같은 동작을하기 위해 다른 버튼에서 터치를 시작한 사용자를 감지하고 손가락을 들어 본 적이 없으며 다른 버튼으로 변경해야 할 수도 있습니다. 드래그를 감지하고 동일한 버튼을 누른 상태에서이 주문으로 나가기를 끌 수 있습니다. 사용자가 드래그 입력 이벤트를 감지하려는 버튼이 아닌 다른 곳을 처음 만진 경우 드래그 입력을 감지 할 수 없습니다. 기본적으로 내가 원하는 것은 손가락의 움직임없이 버튼을 바꾸는 동안 모든 버튼을 터치하는 것입니다. 터치 한 상태에서 새로운 버튼을 감지하고 싶습니다.

이 거대한 단락은 문제 # 2입니다.

도움이 될 것 같은데, 매우 높이 평가됩니다.

좋습니다. 감사합니다.

답변

3

해결.

커스텀 UIButton 클래스를 사용했습니다. 그리고,

  • (공극) touchesBegan : (NSSet *)는 withEvent 접촉 (의 UIEvent *) 이벤트

  • (공극)가있는 touchesMoved (의 UIEvent *) 이벤트

    (NSSet *)는 withEvent 접촉
  • (공극)가 touchesEnded (의 UIEvent *)

    터치 이벤트가 사용자에있는 UIButton 발생한 경우 I 테스트

(NSSet *)는 withEvent 접촉. 그리고 만약 그렇다면, 나는 그에 따라 행동한다.

+1

어떻게했는지 설명 할 수 있습니까? 나는 같은 문제를 가지고있다. –

+0

회사가 바뀌 었습니다. 나는 지금 다른 기술에서 일한다. 나는 코드가 없다. 미안, 내 친구. 너를 훨씬 더 도울 수 없어. 그러나 내가 기억 하듯이, 터치는 위치를 가지고 있으며, 모든 뷰는 위치를 가지고 있습니다 ... 터치하는 위치가 버튼 뷰 내부에 있는지 확인해야합니다. 희망이 도움이되었습니다. – camilo

관련 문제