https://github.com/urijan44/LeafTextField
개발 배경
- MVC로 구성된 리프투두 어플리케이션 리팩토링 중
- 재사용 되는 뷰를, 별도의 타겟으로 옮기기 위한 모듈화 작업 실시
- 다른 프로젝트에서도 똑같이 동작하는 것을 목표로 한 오픈소스 라이브러리 시도
회고
- UIControl vs UITextField 선택
- 이미지 애니메이션 이외의 UITextField 기능을 그대로 제공해야 하기 때문에, UITextField 서브클래싱으로 결정
- TextField 입력 범위 조절을
textRect
와 editingRect
로 조절이 가능
- View Draw 시점에 대한 이해
draw
메서드에서, view의 width를 구하고 해당 시점에서 애니메이션 업데이트를 실행함
- TextField의 특성상 입력 텍스트가 입력되거나, 애니메이션이 실행 된 상태에서 Draw를 반복호출 함, Draw시점에서 애니메이션 결정을 하면 안됨
- AutoLayout
- 이미지 뷰의 CenterAnchor를 viewWidth Offset만큼 이동시킴
- viewWidth를 구하는 시점이 불분명 하고, 원하는 Offset값을 주기 힘들었음
- 이미지 뷰의 trailingAnchor와 CenterAnchor를 번갈아 사용하여 해결