본문 바로가기

Swift

(3)
[Swift] @propertyWrapper ? 안녕하세요 태태입니다. 💜 오늘은 property Wrapper에 대해서 알아보는 시간을 갖도록 하겠습니다. 코드를 작성하면서 중복되는 코드를 줄이는 작업을 많이 하곤 하죠. 가장 간단한 방법으로는 중복되는 코드를 메서드로 정의하고 사용하는 방법이 있습니다. 메서드 단위로 해결하면 클래스 혹은 구조체 내에서 접근을 해야하는데… 프로퍼티 단위로 중복이 발생하면, 이런 로직은 공통화할 수 없을까? 할 수 있습니다. 바로 PropertyWrapper를 사용하는 것 입니다. struct ImageInfo { private var _image: String = "" var image: String { get { self._image + ".jpg" } set { self._image = newValue } } i..
[Swift] Lazy 키워드 안녕하세요 태태입니다. 💜 이번 포스팅은 lazy 키워드에 대해 학습해보려 합니다. 👀 학습보단, 예전에 학습했던 내용을 상기하려는 목적이 강한 글으로 봐주셨으면 합니다. 처음 Lazy 라는 키워드를 보았을때, 게으른..? 뭔가 느린건가? 라는 생각을 했던 기억이 나네요. 그럼 애플 공식문서에서는 어떻게 정의하고 있을까요? "A lazy stored property is a property whose initial value is not calculated until the first time it is used" 즉, lazy 저장 프로퍼티는 처음으로 사용되기 전까지 초기 값이 연산되지 않는다. 라고 해석해 볼 수 있습니다. 그럼 어떤 경우에 lazy를 사용하면 될까요? 앱이 실행되었을때, 항상 사용되..
[Swift] UISwitch 크기 변경하기 안녕하세요 태태입니다. 💜 이번에 검색 화면을 개선하면서 최근 검색어 기능을 구현하게 되었는데요. Switch의 크기가 고정이 되어 있어서 변경할 수 없었어요. 이를 변경하는 방법은 위처럼 비율 값을 주어 변경할 수 있습니다. 크기가 변한 게 눈에 보이시나요?! 👀 여기서 transform이 바로 경계의 중심을 기준으로 뷰에 적용되는 변환을 지정한다. 이름에서도 알 수 있듯이 뭔가를 변환하는 데 사용되는 프로퍼티 같네요 ! 조금 더 살펴보니 superview의 좌표 시스템 내에서 뷰의 프레임을 조정하거나 회전하는데 이 속성을 사용하네요. 뷰의 기준점을 기준으로 변환이 발생하고, 이 기준점은 프레임의 중심점이라고 합니다. 이 기준점은 변경도 할 수 있나 봐요 ! 오늘 포스팅은 여기까지 입니다 🙇🏻‍♂️ 조..