SwiftUI
-
UITextView를 SwiftUI에서 커스텀하게 사용하기SwiftUI 2023. 2. 17. 14:00
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI에서 텍스트뷰 구현을 위해 기본 제공하는 TextEditor를 사용하지 않고 UIKit 세상의 UITextView를 가져와 입맛대로 텍스트뷰를 커스텀하게 구현해보도록 하겠습니다🙌 왜 TextEditor 안쓰죠!? 우선 현재 기준 iOS 16에서 TextEditor가 분명 쓸만해진것은 사실입니다. 다만 최신 버전을 사용할 수 없는 환경에 처한 여러분들이 더 많을것 같고 저 역시 그렇습니다😭 14,15 버전 기준으로 간단히 짚어보면 우선 SwiftUI의 기본 제공되는 TextEditor에서는 우리가 흔히 사용하는 placeholder를 기본적으로 제공하지 않아 필요하면 overlay로 컨트롤 해줘야합니다. 또 텍스트가 입력되는 칸의 Inset을 조정할때..
-
SwiftUI - View를 구조체로 생성하는 이유SwiftUI 2022. 12. 26. 09:13
안녕하세요. 그린입니다🍏저번 포스팅에서는 SwiftUI의 View 프로토콜에 대해 알아봤어요!혹시 안보셨다면 아래 포스팅을 먼저 보고 오시면 더 도움이 됩니다🙌https://green1229.tistory.com/314 SwiftUI - View안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 View Protocol에 대해 알아보겠습니다🙌 SwiftUI로 뷰를 만들면서 꼭 만나는 개념이 있습니다. 바로 View를 채택하는것인데요. 그러니까 이 Viewgreen1229.tistory.com 저번 포스팅 말미에 우리가 SwiftUI에서 View를 정의할때 구조체로 정의하는 이유에 대해 알아본다고 했었습니다😄오늘 그거 한번 알아보시죠 :D 오늘 포스팅은 구조체와 클래스가 무엇인지 그리고 차..
-
SwiftUI - ViewSwiftUI 2022. 12. 24. 12:16
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 View Protocol에 대해 알아보겠습니다🙌 SwiftUI로 뷰를 만들면서 꼭 만나는 개념이 있습니다. 바로 View를 채택하는것인데요. 그러니까 이 View는 프로토콜입니다. 이 프로토콜을 별 고민없이 채택하고 뷰를 그려줬었는데 오늘은 이 프로토콜이 어떻게 구성되어 있는지에 대해서 알아보겠습니다. 그럼 바로 보시죠🕺🏻 View 공식문서에서는 View 프로토콜을 앱 사용자 인터페이스의 일부를 보여주고 뷰를 구성하는데 사용하는 모디파이어 즉 수정자를 제공하는 프로토콜이라고 합니다. 쉽게 정리하면, 뷰를 그리기 위해서 채택하는 프로토콜이라고 이해하고 어떻게 구성되어 있는지 보시죠~! public protocol View { associatedty..
-
SwiftUI - refreshableSwiftUI 2022. 12. 8. 10:16
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 List에서 사용 가능한 refreshable이라는 새로 고침 기능에 대해 알아보겠습니다🙌 우선 해당 기능은 iOS 15 부터 사용이 가능해요! 참고로 WWDC2021에서 소개되었습니다. 비교적 어떻게 보면 최신 메서드이기에 현업에서 13, 14부터 지원을 한다면 사용할 순 없습니다. 그렇지만 앞으로 미니멈 타겟은 점차 올려갈것이고 배워두면 좋기에 이참에 한번 트라이 해봅니다🙌 여러분 모두 테이블뷰 혹은 컬렉션뷰로 된 즉, 리스트로 데이터가 뿌려진 뷰의 경우 최상단에서 아래로 드래깅 시 새로 고침이 되면서 데이터를 최신으로 갱신하는 그런 기능을 가진 앱을 아주 많이 보셨고 익숙하실거라 생각합니다. 모두에게 사실은 친숙한 기능이긴한데 SwiftUI..
-
SwiftUI - antialiased & interpolationSwiftUI 2022. 12. 6. 14:47
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 이미지를 조금 더 매끄럽게 보간하는 메서드들에 대해 학습하겠습니다🙌 오늘 소개할 두가지는 antialiased와 interpolation입니다. 그럼 순차적으로 알아보겠습니다! antialiased? 안티 에일리어싱이 뭘까요? 사전적인 의미부터 한번 파악해보죠. 우선 에일리어싱은 디지털 샘플링에서 출력이 왜곡되는 현상 즉, 계단 현상을 의미합니다. 이미지 같이 렌더링된 컨텐츠를 보여줄때 출력되는 이미지의 픽셀이 깨지거나 가장자리가 울퉁불퉁 해지게 나타나는 현상입니다. 여기서 안티가 붙었으니 이러한 매끄럽지 못한 출력을 매끄럽게 만들어주는 메서드겠죠? 실제 공식문서에서는 아래와 같이 소개하고 있습니다. "이미지를 렌더링할 때 SwiftUI가 안티 ..
-
SwiftUI - renderingModeSwiftUI 2022. 12. 2. 10:14
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI에서 Image를 사용함에 있어 renderingMode라는것에 대해 학습해보겠습니다🙌 오늘 도대체 뭐할거?! 프로젝트를 만들다보면 당연히 이미지 에셋이 필요할 경우가 있습니다. 대부분 아이콘 같은 것들을 SVG 파일 형식으로 에셋에 담아 사용하는 경우가 많은데요. 이때 이미지를 에셋에 담는다면 우측 Image Set의 Render As 항목을 볼 수 있습니다. 그럼 아래와 같이 3가지의 선택 옵션이 있습니다. 자 오늘 다뤄볼것이 이거에요! 렌더링 모드가 어떤것이 있고 어떤 의미를 갖는지와 매번 에셋 관리자에서 수정해주지 않아도 각 코드에서 변경할 수 있도록 renderingMode 메서드를 활용하는 방법과 실제 구동 시 어떤 차이가 있는지 알아보겠..
-
전역적인 Window 객체를 이용해 LoadingView 띄우기SwiftUI 2022. 11. 29. 16:40
안녕하세요. 그린입니다🍏 이번 포스팅에서는 전역적으로 아예 뷰를 감싸버려 로딩뷰를 윈도우로 만들어 띄우는 방법을 포스팅 해보겠습니다! 왜 이런 구현이 필요하게 되었나요? 우선 각 피쳐에서 뷰를 구성함에 있어 바텀 영역이 존재할때도 있고 없을때도 있습니다. 즉, 각 다른 구성의 뷰에서 해당 로딩뷰를 종속으로 띄워준다면 보여지는 뷰의 패딩이 달라지기에 보여지는 위치가 달라질 수 있습니다. 이를 해결하기 위해 기존 뷰의 조합들이 이뤄진 윈도우 위에 새로운 윈도우를 만들어 덮어버리는 방식도 방법일것 같아 구현해봤어요! 이 구현을 위해서는 우선 띄워줄 로딩 뷰 자체를 만들어야 합니다. 그 다음으로는 로딩뷰를 담을 새롭게 공유할 윈도우 객체를 만들고 초기화 시 UIHostingController를 이용해 해당 로딩..
-
SwiftUI - LazyVGrid & LazyHGridSwiftUI 2022. 11. 24. 18:42
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI에서의 LazyVGrid와 LazyHGrid에 대해 알아보겠습니다🙌 우선 UIKit 세상에서는 CollectionView라는것이 있습니다. SwiftUI에서도 쉽게 컬렉션뷰라고 생각하면 됩니다. Grid라는 의미 자체는 2차원의 행과 열을 구성하는 레이아웃이라는 뜻을 내포합니다. 그럼 SwiftUI에서 Grid를 나타내는 LazyVGrid와 LazyHGrid를 하나씩 보시죠! LazyVGrid VStack과 같이 세로 즉, 열이 우선되게 뷰가 정렬되고 싸이는 컨테이너 뷰입니다. Lazy가 붙은 이유는 필요할때만 해당 SubView를 정렬해 생성하기에 Lazy가 붙었습니다. struct LazyVGrid where Content : View 선언은 위..