2015-01-05 3 views
1

iOS 응용 프로그램에서 등록 양식을 작성 중입니다. 텍스트 필드가 애니메이션처럼 나타나는 커서 편집을 시작했을 때 이름, 전자 메일, 도시 등과 같은 몇 가지 텍스트 필드가 있습니다. 문자를 입력 한 후 커서가 위에서 아래로 천천히 왼쪽에서 오른쪽으로 천천히 움직입니다.이 원치 않는 애니메이션을 중지해야합니다. 나는 TPKeyboardAvoiding scrollview 키보드 팝업 때보기를 스크롤 사용하고 있습니다. TPKeyboardAvoiding없이 확인했지만 똑같은 일이 발생했습니다. enter image description hereUITextField 커서는 위에서 아래로 움직이며 텍스트도 움직입니다.

+0

UITextField의 수퍼 뷰는 무엇입니까? – Tander

+0

uiviewcontroler uitextfield에 대한 superview 만 –

+0

tpkeyboard 키워드로 검색했지만 아무 관련 링크가 없습니다. –

답변

1

애니메이션이 TPKeyboardAvoiding 라이브러리에서 비롯된 것 같습니다. 또한 내 앱 (등록)에 동일한 화면이 있으며 동일한 라이브러리를 사용합니다. 그러나 내 textfields 사용자 정의 UITableViewCell 안에 넣고 등록에 대한 UITableView 있습니다. 이렇게하면 코드와 클리너가 줄어 듭니다. 나는 UIScrollView이 터치를 올바르게 수신 할 수 있도록 UITableView에서 스크롤을 해제합니다.

그런 식으로하는 것이 좋습니다.

+0

TPKeyboardAvoiding을 제거 했는데도 변경 사항이 없습니다 –

+0

실제 장치에서이 작업을 시도해 보았습니까? – Tander

+0

@tander 답변에 감사드립니다. 문제는 tpkeyboard 때문이 아닙니다. 나는 uiviewanimations를 제거하는 것을 잊었다. 나는 upiewanimations를 tpkeyboard의 대안으로 사용했다. –

0

뷰의 애니메이션 가능 속성을 변경하기 전에 코드 배경에 따라 superview.layoutIfNeeded() (또는 self.view.layoutIfNeeded())을 호출하십시오. 이렇게하면 자신 만의 레이아웃을 변경하고 애니메이션을 커밋하기 전에 수퍼 뷰가 고유 한 레이아웃 변경 사항을 완료 할 수 있습니다. (이것은 외부 라이브러리가 자신의 애니메이션을 적용하는 경우 추적하기 어려울 수 있습니다.)

+0

왜 downvote ?? Apple의 문서에서 "자동 레이아웃으로 인한 애니메이션 효과 적용"을 참조하십시오. https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/AutolayoutPG.pdf –

2

내가 디버깅 후 나는이 이상한 애니메이션 나는 수 있어요 때문에

- (void)TPKeyboardAvoiding_keyboardWillShow:(NSNotification*)notification { 
    //... 
    [self layoutIfNeeded]; 
    //... 
} 

- (void)TPKeyboardAvoiding_keyboardWillHide:(NSNotification*)notification { 
    //... 
    [self layoutIfNeeded]; 
    //... 
} 

의 일어나고있는 것을 발견, 같은 문제가 발생 [self layoutIfNeeded]; 메서드 호출을 제거하여이 문제를 해결할 수 있습니다. 이 솔루션이 다른 어떤 것에 영향을 주는지 나는 모른다.

관련 문제