본문 바로가기

[IOS][SWIFT]

[IOS][SWIFT] UITextView 글자수 제한 및 글자수 세는 Label 만들기!

반응형

안녕하세요! MIN.IOS입니다~😁

요즘 직장에서 앱이 슬슬 출시일에 임박해지면서 조금은 천천히 글을 작성하고 있는데요.

그래도 꾸준히 하기 위해 오늘도 새로운 주제를 가지고 돌아왔습니다!

 

오늘의 주제는 UITextView를 이용할때, 글자수를 제한하거나 글자수를 실시간으로 셀 때!

눈으로 볼 수 있는 Label을 한번 알아보려고 합니다!

 

자 먼저 UI를 보여드리겠습니다!

 

 

오늘은 저런식으로 문의내용을 입력했을 때 밑에 숫자로 글자수를 세어주는 방법을 알아보려고 하는데요!

제일 중요한 사실이 한가지 있기 때문에 코드를 보기전에 알려드리겠습니다!

 

바로 UITextView와 UITextField에 대해서 조금의 차이점에 대해 알려드리려고 하는데요

우선 오늘은 TextView로 글을 작성했지만, 요청이 있다면 TextField를 이용하는 글도 작성하겠습니다!

 

먼저 제가 경험했던 가장 큰 차이점은 UITextField는 한줄로만 적혀지고 문자가 입력되기전 

Placeholder라는 기능으로 미리보는 문구를 지정해줄수 있지만 UITextView의 특징은

아래로 줄바꿈을 할 수 있으면서 Placeholder기능을 코드로 구현해야한다는 차이점이 있습니다!😊

 

(이 두개의 글자수 세는 코드도 살짝 다르기 때문에 그 부분도 요청하시면 작성하도록 하겠습니다ㅎㅎ)

 

그럼 이제 코드 부분으로 넘어가겠습니다!!

 

먼저 UITextView와 UILabel을 설정해주는 코드를 보여드리겠습니다!!

 

 

코드로 디자인 하는 방법은 이전글에 게시되어 있으니 참고해주시면 감사하겠습니다!

 

먼저 TextView의 내용이 비어있을때 문의내용을 입력해 주세요.를 통해서 내용이 비어있다는걸 확인시켜주려는 코드입니다!

저 코드중에 Delegate라는게 제일 중요한 부분이라고 생각되는데요.

 

Delegate?란 먼저 영어를 직역한다면 집단의 대표?같은 의미로 직역이 되는데요

음....누군가의 대표가 되어서 내가 할 일을 대신 해주는 역할이라고 생각하시면 편할꺼 같습니다!

 

쉽게말해서 Delegate패턴은 처리해야 할 일 중에 일부의 일을 다른 객체에 넘기는 것을 뜻합니다!

 

그럼 코드에서 보이는 delegate = self에 대한 코드를 보여드리겠습니다!

 

 

extension = 확장! 이부분에 UITextViewDelegate를 선언해준뒤, 차례로

뷰를 작성하기 시작하는 시점, 끝내는 시점, 그리고 func textView는 글자수를 세기 위한 func이라고 생각하시면 될 것 같습니다.

(뷰를 작성하는 시점과 끝나는 시점은 앞써 설명드린 Placeholder기능을 구현하기 위해 작성했습니다!)

저는 TextView안에서 100글자의 수를 제한해두고 99개 이하일때까지 글을 작성할 수 있도록 설정해 보았습니다.

그럼 gif파일을 보여드리겠습니다!

 

 

코드를 작성해보면 이렇게 글자수를 세면서 제한하는 기능을 구현해볼수 있겠습니다!

자 이상으로 오늘 글을 마무리 지어보려고 하는데요!

이번 글을 쓴것도 제가 업무상 고민하고 공부했던 내용을 나눠보았는데,

원하시는 기능이나 같이 나누고 싶은 기능을 알려주시면 참고해서 글을 작성해보도록 하겠습니다!

그럼 다음글에서 뵙겠습니다!!👏 👏 👏

반응형