SwiftUI
-
SwiftUI - @State / @Binding / @StateObject / @EnvironmentObjectSwiftUI 2022. 3. 21. 20:15
안녕하세요. 그린입니다🟢 이번 포스팅에서는 전 포스팅에 이어 SwiftUI에서 구조체 내부에서 값을 변경하여 반영해주거나 전역적으로 값의 업데이트를 반영해주는 그런 친구들인 타이틀의 세친구 즉, @State, @Binding, @StateObject, @EnvironmentObject에 대해서 학습해보겠씁니다🙋🏻 우선 하나씩 차례대로 진행해보겠습니다👍 @State 정의를 먼저보면, SwiftUI에서 값을 읽고 쓸 수 있는 유형의 어노테이션입니다. @frozen @propertyWrapper struct State 역시 propertyWrapper이고 구조체입니다. SwiftUI에서 우선 뷰는 구조체입니다. 즉, 내부 값을 변경해줄 수 없는데 이 @State를 이용해 변경해줄 수 있습니다. 또한 구조체이기..
-
Custom StepperSwiftUI 2022. 1. 28. 19:53
안녕하세요. 그린입니다🟢 이번 포스팅에서는 커스텀한 Stepper를 구현해보겠습니다🙋🏻 SwiftUI에서 기본 내장되어있는 Stepper가 있습니다. 그런데..! NavigationLink를 통해 들어간 뷰에서는 왜인지 Stepper의 동작이 다소 이상합니다. 예를들어 살짝 누르면 안되고 꾸욱 눌러주어야 변경되며 버튼 Hold 액션을 통해서는 반복적으로 카운팅이 안올라가는ㅠㅠ 관련 간증들을 찾아보니 SwiftUI에서 NavigationLink의 파생된 버그 같더라구요.. 네비게이션 관련해서 아직까지 여러 버그가 있는데 그중 하나인것 같습니다🤬 그래서..! 직접 Stepper를 동일하게 구현해봤습니다. Stepper 구현하기 import SwiftUI struct ContentView: View { @St..
-
SwiftUI - multilineTextAlignment & lineLimit & lineSpacingSwiftUI 2022. 1. 19. 20:43
안녕하세요. 그린입니다🟢 이번 포스팅에서는 multilineTextAlignment과 lineLimit 그리고 lineSpacing에 대해 학습해보겠습니다🙌 multilineTextAlignment? SwiftUI로 뷰를 구성하며 텍스트를 넣어주는 뷰 구성이 아주 많습니다. 그럴때 개행이 일어날때가 있어요. 그때 개행 시 어느쪽에서 정렬을 줄것인지 즉, 개행 시작 위치가 어디인지 정해줘야할때 사용됩니다. (SwiftUI 편리한게 아주 많아.. 좋아ㅠ) multilineTextAlignment(_:) 우선 어떤건지 공식문서를 통해 정의부터 봐볼께요! 그전에 딱 직역해도 느낌이 오시죠? "여러라인의 텍스트 정렬" 네.. 아주 쉽고 아주 간단한 포스팅이 될것 같네요🙃 "Sets the alignment of ..
-
swipeActionsSwiftUI 2021. 12. 23. 20:20
안녕하세요. 그린입니다🟢 이번 포스팅에서는 SwiftUI에서 사용되는 swipeActions이라는것을 알아보겠습니다💁🏻 swipeActions? 자 다들 아래 같은 기능에 아주아주 친숙하실거에요. 리스트에서 목록을 스와이프 했을때 뭐 저장하거나 삭제하거나 등등 메모앱에서 너무 많이 사용되고 그뿐만아니라 거의 모든 이런 구성에는 필수적인 기능이죠? 오늘 알아보고 따라 구현해볼건 바로 요 기능입니다! 공식문서의 개념 정의를 보겠습니다. 리스트의 행에 스와이프 시 커스텀한 로직을 태울 수 있다고 나옵니다. swipeActions의 파라미터 우선 해당 메서드의 정의된 선언을 보겠습니다. func swipeActions( edge: HorizontalEdge = .trailing, allowsFullSwipe: ..
-
Tap&Drag Gesture in SwiftUISwiftUI 2021. 12. 2. 21:00
안녕하세요. 그린입니다🟢 이번 포스팅에서는 SwiftUI 환경에서 Tap과 Drag 제스쳐에 대해 간단히 학습해보겠습다🙋🏻 오늘 포스팅은 정말 정말 정말 간단해요! 너무 간단해서 시시할수도 있습니다🤭 자 일단 오늘 해볼것은 도지를 하늘로 솟아오르는 로켓처럼 강제로 꼭대기로 가져다 놓아볼께요🚀 여기서 해볼것은 탭과 드래그 제스쳐입니다. 우선 탭이 되었을때 이미지를 토글해줄겁니다. 그리고 강제로 도지를 끌기위해 드래그를 통해 도지의 위치를 실시간으로 변경해줄것이고 드래그 되는 동안에는 로켓으로 변경해줄겁니다. 그럼 먼저 시연영상을 보시죠! 시연영상 간단하고도 염원이 담겨있습니다🙏🏻 그럼 바로 복잡할것 없는 코드를 보시죠! 전체 소스코드 import SwiftUI struct HangOnDogeView: Vi..
-
ActivityView in SwiftUISwiftUI 2021. 11. 29. 22:00
안녕하세요. 그린입니다🟢 이번 포스팅에서는 SwiftUI에서 ActivityView(액티비티 뷰)를 띄우는것에 대해 학습해보겠습니다💁🏻 SwiftUI를 통해 구현을 하다 어떻게 하면 요런 데이터를 공유할 수 있는 액티비티 뷰를 띄울 수 있을까에 대해 고민하고 스택 오버플로와 다양한 레퍼런스를 통해 구현해보았습니다! 바로 이전 블로그 포스팅인 링크공유 & 링크이동에서 액티비티 뷰를 띄우는걸 학습해보았는데요. 그건 UIKit의 방식에 거의 유사하여 조금 더 SwiftUI로 구현해보았어요. https://green1229.tistory.com/194 네 앞으로 구현할것이 이런 half한 액티비티 뷰를 띄우는 것입니다. 그럼 먼저 동작되는 화면을 간단한 짤로 보시죠! 동작화면 자 정말 간단히 제 블로그 URL을..
-
Rotation AnimationSwiftUI 2021. 11. 21. 11:23
안녕하세요. 그린입니다🟢 이번 포스팅에서는 오랜만에 간단히 UI와 관련하여 학습해보겠습니다🙌 바로 Rotation Animation입니다. 요즘 너무 정적인것만? 학습한것 같아서 조금 재밌는걸 해보려합니다! 다들 리프레쉬 버튼에 대해서는 알고 계실겁니다. 즉 새로고침과 같이 갱신 버튼을 누르면 화면이 갱신될동안 버튼이 돌고 갱신 후 멈추는 애니메이션을 볼 수 있을겁니다. 오늘은 그거에 대해 간단히 몇가지를 알아보려합니다👍 그럼 오늘의 예제는 SwiftUI로 리프레쉬 이미지를 돌리는 애니메이션으로 학습해볼께요! 이미지 1회전 하기 이렇게 이미지를 한바퀴만 돌리고 멈추는 코드를 보시죠! import SwiftUI struct ContentView: View { @State private var isAnima..
-
SwiftUI - NotificationCenterSwiftUI 2021. 9. 19. 12:06
안녕하세요. 그린입니다🟢 이번 포스팅에서는 SwiftUI에서 NotificationCenter를 활용하는 방법에 대해 학습하겠습니다🧑🏻💻 UIKit에서는 잘 알겠는데 대체 SwiftUI에서는 어떻게 노피티케이션 센터를 활용할까요? 정말 이번 포스팅은 간단합니다. 순식간에 슉~하고 끝나버리니 눈 크게 뜨고 보셔야 됩니다👀 아, 참고로 이전에 포스팅했던 스크린샷 캡쳐/녹화 감지 및 방지에 대해 UIKit으로 구현한걸 SwiftUI의 NotificationCenter를 통해 구현하는 예제로 보겠습니다👍🏻 NotificationCenter 생성 import SWiftUI struct mainView: View { let screenCapturePublisher = NotificationCenter.defaul..