MC2에서 도전해보았던 검색 기능에 대한 설명 #23
seoyounghan
started this conversation in
Idea
Replies: 2 comments 1 reply
-
text 이어붙이는 개념이 멋지네요!!! 👍 |
Beta Was this translation helpful? Give feedback.
1 reply
-
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
검색 기능 설명
안녕하세요. 오전반 타냐입니다 :) 이번에 MC2 시연할 때 많은 분들이 "이거 어떻게 구현했어요?" 라고 해주셨던 검색 기능에 대한 설명입니다.
검색에서 제가 생각했던 기능은 다음과 같습니다.
구현된 화면 입니다
코드로 먼저 보시면
일단 그래프 뷰에서는 모든 검색 가능한 택스트 들은 이 함수를 통해 반환되고 있습니다.
fullText
는 원래 보여주는 모든 텍스트를 매개변수로 받았고,searchText
는 검색창에 들어온 텍스트를 받았습니다.그 후에 만약
searchText
로 검색창에 들어온 값이 없다면 그냥fullText
를 반환해줍니다.rangesOfSubstring
을 통해서fullText
안에서 찾은searchText
의 위치를 반환해줍니다.해당 위치들을
ranges
로 받아서result
값을<검색된 인덱스 보다 작은 인덱스에 있던 값들>
+<검색된 값>
+<검색된 인덱스 이후 인덱스에 있던 값들>
형식으로 더해줍니다.<검색된 값>
은 볼드 + 빨간색 형태로 더해집니다. 😊아쉬웠던 부분은 처음 생각했던 디자인 에서는 텍스트를 하이라이팅(배경이 노란색)으로 처리해주는 디자인이였지만 빨간색 폰트를 주는 방식으로 변경된 점입니다.
background가 들어가면 Text 형식이 아닌 View 형식이 되어서 처리가 어려워지는 문제가 있어서 해당 방식으로 구현하게 되었습니다.
swift에서 문자열 다루는 것도 어려웠고, 영어(대소문자 구분 없이 처리) + 한글 처리 를 동시에 하려니 조금 어려운 부분이 있었습니다!ㅜ
그래도 시연할 때 많은 분들이 질문을 주셨던 부분이라 뿌듯함이 있었습니다 👍🏻
제가 구현한 방식을 개선할 방법이나 백그라운드로 처리할 방법을 알고계신다면 댓글 남겨주세요 🙏🏻
Beta Was this translation helpful? Give feedback.
All reactions