Swift에서 iOS 8 용 사용자 지정 키보드 확장 프로그램을 쓰고 있는데 Swype 스타일의 낙서 오버레이를 구현하는 데 문제가 있습니다. 현재 키보드에는 (의 view
속성)이라는 숫자가 키보드의 키에 해당하는 UIButtons
이라는 기본 기능이 있습니다. 이 키들은 touchUpInside
이벤트에 응답하고 위 또는 아래로 스 와이프하면 보조 문자를 입력하는 UISwipeGestureRecognizers
을 갖습니다. 내 낙서 오버레이보기를 하위보기로 추가하려면 touchesBegan:withEvent:
을 재정의하고 내 UIInputViewController
에 내 낙서보기를 제거하려면 touchesEnded:withEvent:
을 재정의했습니다.조건부로 터치 이벤트를 가로채는 방법은 무엇입니까?
현재 버튼 사이의 간격 중 일부부터 시작하여 낙서를 시도하면 낙서 오버레이보기가 올바르게 표시됩니다. 그러나 UIButton
상단에서 낙서를 시작하면 UIButton
은 터치 이벤트를 캡처하고 내 UIInputViewController
으로 전달하지 않습니다.
사용자가 단추 사이를 가로 지르지 만 단추 누르기/넘기기를 처리 할 때 내 필기 오버레이보기가 나타나는 방식으로 키보드를 구현할 수 있습니까?
--EDIT--
나는 다음 응답에 이벤트를 전달하도록 touchesBegan/Moved/Ended/Cancelled
방법을 재정 의하여이 문제를 해결하려고 시도했습니다. 버튼을 클릭 한 다음 다른 버튼을 클릭하면 두 개 사이에 낙서가 생길 수 있습니다. 그러나, 나는 여전히 단추 사이에 낙서로 단추에 그릴 아무것도 얻을 수 없습니다. 누구나 더 좋은 생각이 있습니까?
--edit 번호 2-- 현재, 내보기 계층 구조는 다음과 같이 설정
: UIView
서브 뷰합니다 (UIInputViewController
에서) : 파단를 오버레이 내 모든 버튼, 다음 내 ScribbleView
.
ScribbleView
에 userInteractionEnabled
을 true로 설정하면 시작 위치에 관계없이 어디서나 낙서가 표시 될 수 있지만 단추 기능이 손실됩니다.
소스 코드의 경우 접촉 이벤트와 기타 등등을 전달하는 다양한 구성을 실험했지만 코드 본문은 https://github.com/Kamaros/ELDeveloperKeyboard입니다.
분명히 옵션이지만 각 버튼에 붙인 제스처 인식기와 함께 작동하는 방법을 잘 모르겠습니다. 아무도 더 똑똑한 무엇인가 생각하지 않는다면, 시험할만한 가치가 있습니다. – Kamaros
버튼 사이에 낙서가 생기기 때문에 (뷰 버튼이 아닌) 뷰 계층 구조의 문제가 아닌가? 내 말은, 당신은 단추 자체 아래에 그림을 그리지 않습니까? 다시 말하지만, 코드에 액세스 할 수 없으므로 추측에 불과합니다. 다른 방법으로는, 만약 당신이 kludges에있어, 당신은 항상 모든 버튼 위에 빈 UIView를 넣을 수 있고, 그릴 때마다 그림을 그릴 필요가 없습니다. –