2015-01-31 2 views
1

나는 Swift on IOS8에서 메시징 응용 프로그램을 작성하려고합니다. 본질적으로 나는 텍스트 필드의 가장자리에 도달했을 때 IOS의 문자 메시지 응용 프로그램이 무엇을하는지 모방하려고합니다. 텍스트 필드의 높이가 증가하고 새로운 라인이 만들어집니다. 지금 내가 타이프 할 때, 단어는 단지 옆으로 스크롤한다. 사이드 스크롤을 방지하고 대신 텍스트 필드의 크기를 조정할 수 있습니까?Swift에서 사용자 유형으로 UITextField의 크기를 조절하는 방법

+1

텍스트 필드 대신 textview를 사용하십시오. –

+0

텍스트 필드 사용에 대한 나의 이유가 같아서 자리 표시 자 텍스트와 둥근 테두리가있을 수 있습니다. – tdon

답변

0

나는 대리자 메서드와 함께 UITextView을 사용해야합니다. 내부 텍스트가 언제 변경되는지 추적하고 지정한 제약 조건에서 내용 크기를 측정하여 텍스트 너비 (또는 높이)를 적절히 업데이트 할 수 있습니다.

drawRect:을 다시 구현하여 둥근 테두리를 추가하거나 layer (예 : cornerRadius)의 속성을 사용자 정의 할 수 있습니다.

자리 표시자는 텍스트 변경 내용을 추적하여 구현할 수도 있습니다 (위임 메서드 또는 알림 여부에 관계 없음).

나는 이것이 최적이 아니라고 동의하지만, 적어도 UITextField 행동을 모방하는 옵션은 여전히 ​​가지고 있습니다.

+0

답변 해 주셔서 감사합니다! 텍스트 뷰에 입력 된 텍스트의 줄 수를 알려주는 메서드가 있습니까? – tdon

+0

직접 줄 수를 알 수는 없지만 textView에 내용 크기 (contentSize 속성 포함)를 물어볼 수 있습니다. 입력하는 동안 자동으로 업데이트됩니다. 유일한 요구 사항은 너비를 레이아웃 제약 조건으로 지정하거나 프레임을 설정하여 강제로 지정하는 것입니다 (자동 레이아웃이없는 경우에만). 그렇지 않으면 콘텐츠 크기를 계산할 수 없습니다. –

+0

괜찮습니다. 모든 도움을 주셔서 감사합니다! – tdon

관련 문제