2013-04-18 6 views
1

화면 중앙에 UISearchBar을 포함하는 UIView가 있습니다. 사용자가 UISearchBar을 클릭하면 UIKeyboardFrameEndUserInfoKey을 기반으로이 뷰를 성공적으로 애니메이션합니다.키보드를 표시 할 때 UIView를 동일한 속도로 이동하십시오.

문제는 이것이 나를 위해 충분하지 않다는 것입니다.

내가 뭘하고 싶은 건, 키보드 상단이 UIView의 하단에 닿을 때까지 UIView를 유지 한 다음 키보드가 움직이는 것과 같은 속도로 UIView를 움직입니다. 키보드가 UIView에 도달하면 기본적으로 UIView를 키보드 상단에 "고정"합니다.

나는 이것이 UIKeyboard 알림이 전송하는 정보로는 불가능하다고 생각하기 시작했습니다. 누구나 비슷한 것을 시도하고 성공을 보았습니까?

감사합니다.

답변

0

UIKeyboardWillChangeFrameNotification에 제공된 정보를이 용도로 사용할 수 있어야합니다. 이 알림의 정보는 키보드의 시작 및 끝 프레임, 애니메이션 커브 유형 및 기간을 알려줍니다.

애니메이션의 주어진 시간에 키보드의 포인트를 계산하려면 this code을 Jeff LaMarche에서 사용하거나 CAMediaTimingFunction 클래스를 사용하고 애니메이션 유형 (이름이있는 함수로)을 연결하고 키보드는 특정 시점에 있어야합니다.

주어진 시점에서 키보드가 어디에 있는지를 알게되면 키보드로 UIView의 애니메이션을 설정할 수 있습니다.

+0

'CAMediaTimingFunction'에 대한 정보를 제공해 주셔서 감사합니다. 내 타이머와 키보드 타이머가 동시에 시작되었는지 어떻게 확신 할 수 있을지 모르겠습니다. 나는 이것이 디자인에 더 이상 들어 맞지 않는다는 것을 깨달았습니다. (예를 들어 iPhone 5에서는 절대로 그런 일이 일어나지 않습니다. –

관련 문제