Search

9주차 질문

진행 일자
2023/11/18 16:00
피드백 여부
피드백 완

질문

1.
최근에 제가 Textfield를 건드려보면서 multiLine Textfield를 사용하고싶어서 TextEditor에는 Placeholder 기능이 없다는 걸 확인 후 Textfield의 axis 값을 vertical로 주고 사용을 하였습니다. 그 후 키보드의 submitLabel 즉 엔터키를 done 타입이랑 return 타입 이 두개를 선택할 수 있게 해주려고 보니까 done 타입으로 주게되어도 Textfield에서는 그냥 한 줄을 띄어버리더군요. 그래서 Textfield 선언 시에 axis 값을 주지않고 singleline textfield로 선언해보니 done을 줬을 때 submit이 잘 작동하는 걸 확인했습니다. 이런 경우에는 UIKit으로 구현하고 UIViewRepresentable로 View를 보여줘야 하는 것인지, 아니면 SwiftUI로 할 수 있는 방법이 있는 지 궁금합니다. (물론 아직 UIKit으로 구현할 수 있는 지 찾아보는 중인데 아직 못찾았습니다)
2.
제가 어떤 복사버튼을 View에 그려주려 하는데 어떤 Boolean 값이 false면 해당 버튼이 보이고, true면 안보이는게 그려주어야 겠다 하고 코드를 작성 중에 부드럽게 버튼이 보여질 수 있도록 애니메이션을 추가해주려는데 항상 하듯이 .animation 이런식으로 주었더니 애니메이션이 먹히질 않는 문제가 생겨 다시 withAnimation으로 감싸는 등 여러 방법을 해봤지만 먹히지가 않아서 질문을 드립니다…(상황은 이제 textfield의 text의 isEmpty 값이 true면 버튼이 안보이고 false면 버튼이 보여집니다.)

답변

커스텀 컴포넌트를 만들려고 한다면
1.
존재하는 기능인지?
2.
존재하는 기능이라면 그 존재하는 기능을 가지고 응용해서 커스텀
3.
존재하지 않는다면 존재하지 않는 이유가 있기 때문에 내가 커스텀해야하는 타당한 이유를 생각해본다
4.
타당하다면 근본으로 있는 부분부터 찾아보며 커스텀을 진행
5.
커스텀 컴포넌트를 구현한다면 여러 사람이 사용할 수 있도록 이니셜라이징 방법을 여러가지로 만들어서 오픈소스로 공유할 수 있도록 구현
오픈소스를 많이 보다보면 다른 사람들이 사용할 수 있도록 오픈소스화 된 코드를 구현하도록 바뀔 것이다.
필요한 기능만 구현된 컴포넌트를 만들게되면 일회성 커스텀 컴포넌트밖에 되질 않고 버려질 가능성이 높으며 비효율적인 공부를 하게될 것이다.
오픈소스화된 커스텀 컴포넌트를 구현 시에는 SwiftUI와 UIKit 모두 작성해주면서 업데이트가 계속 이루어져야한다.
.constant를 사용하는 이유는 바인딩되는 값을 넘겨줘야 할 때 목업데이터를 테스트용도로 보여줄 때 사용
애니메이션을 구현할 땐 전의 상황과 그 후의 상황을 다 그려주어야하 하며 어떻게 얼마만의 시간을 주어야한다.(리이오 유튜브 다시보러가자~ 드가자~)