Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩

SwiftUI107

34. [SwiftUI] TextEditor, Safe Area에 대한 탐구 이전 시간에 봤던 텍스트 필드는 '한 줄'에 적합했다. 이제 여러 줄의 입력이 필요한 경우 TextEditor 를 활용해야 한다. 다만 TextEditor는 TextField에 비해 커스텀 하기가 굉장히 어렵다. (제한적이다.) ex. background modifier를 통해 컬러를 변경할 수 없다. (화이트 디폴트다.) 다만 colorMultiply를 통해 완벽하게는 아니지만 변경할 수는 있다 ㅎㅎ.. 그래서 커스텀이 많이 필요한 경우, 여러줄의 인풋이 그다지 필요 없는 경우는 TextField를 활용하자. // Created by Toughie on 2023/04/30. // import SwiftUI struct TextEditorPrac: View { @State var textEditorTex.. 2023. 4. 30.
33. [SwiftUI] TextField(basic) 유저의 입력을 받을 수 있는 텍스트필드에 대해 알아보자. 유저의 입력 순간 순간을 감지하거나, 키보드의 리턴(엔터)버튼을 누르는 등 유저 입력부분에는 정말 다양한 커스터마이징이 가능하기 때문에 우선은 기본 기능을 살펴보자. 추가적으로 이전 시간에 배웠던 개념을 복습하는겸 알럿까지 띄워봤다. 먼저 두 글자 이상 받고 싶은 상황이다. 따라서 두 글자가 입력되기 전까지는 저장 버튼이 붉은색이었다가, 두 글자 이상인 경우 초록색으로 변한다. (혹은 두 글자가 입력되기 전에는 버튼 자체를 disable 시키는 방법도 있다.) 하지만 조건을 만족하지 못한 경우에 알럿을 띄우는 방식을 사용했다. 색이나 애니메이션 등으로 UX를 이끌어 낼 수도 있지만, 만약 그냥 조건을 만족하기 전 버튼을 disable시킨다면 어 왜.. 2023. 4. 29.
32. [SwiftUI] .contextMenu() 컨텍스트 메뉴, Label() 보통 여러 버튼을 띄워야 할 때 알럿, 액션시트를 활용하는데 컨텍스트메뉴라는 녀석도 있다. 아 근데 보니까 아이폰6s부터 생겼던 '3D Touch'가 바로 떠올랐다. 아이콘을 꾹 누르고 있으면 압력을 감지해서 버튼이 쪼르르 나왔던 그..! 근데 요즘은 아이폰에 3D Touch, 포스터치가 다 사라졌기에.. 그냥 이런 것도 있다 정도로 참고하면 좋을듯 하다. 위와 같이 꾸욱 누르고 있으면 메뉴가 뜬다. // Created by Toughie on 2023/04/29. // import SwiftUI struct ContextMenuPrac: View { @State var backgroundColor = Color(#colorLiteral(red: 0.2196078449, green: 0.007843137.. 2023. 4. 29.
31. [SwiftUI] .actionSheet() 액션시트 알럿에 이어 액션시트를 공부해 보자. 화면 하단에서 위로 올라오며 다양한 버튼이 있는 화면을 한번쯤은 봤을 것이다. // Created by Toughie on 2023/04/29. // import SwiftUI struct ActionSheetPrac: View { @State var showActionSheet: Bool = false var body: some View { Button("Tap") { showActionSheet.toggle() } .actionSheet(isPresented: $showActionSheet) { getActionSheet() } } private func getActionSheet() -> ActionSheet { let button1: ActionSheet.Bu.. 2023. 4. 29.
30. [SwiftUI] .alert() 알럿 아이폰 유저라면 익숙할 알럿. 보통 관련 내용이 화면 중간에 나오고 OK, Cancel 버튼 등이 존재한다. 유저에게 중요한 정보를 전달하거나 경고를 할 때 사용되는 팝업 창이다. 앱 사용중 사용자에게 알림을 날리고 즉각적인 반응이 요구될 때 유용하다. - 앱에서 오류가 발생했을 때 - 데이터를 삭제하기 전 (정말 삭제하시겠습니까?) - 중요 업데이트, 공지사항을 전달할 때 등 // Created by Toughie on 2023/04/29. // import SwiftUI struct AlertPrac: View { @State var showAlert: Bool = false @State var alertType: MyAlerts? // @State var alertTitle: String = "" .. 2023. 4. 29.
29. [SwiftUI] List() 리스트뷰 VStack과 비슷?하지만 손쉽게 데이터 추가/삭제/정렬이 가능한 리스트에 대해 알아보자. 리스트를 활용하면 아래와 같은 설정 화면도 구현할 수 있다.(우측은 이번 예시) 코드로 살펴보자 // Created by Toughie on 2023/04/27. // import SwiftUI struct ListPrac: View { //리스트의 요소를 위한 더미 데이터 배열 @State var fruits: [String] = [ "apple", "orange", "banana", "waterMellon" ] @State var veggies: [String] = [ "tomato", "carrot", "sweetPotato" ] var body: some View { //네비게이션뷰 안에 리스트 Naviga.. 2023. 4. 27.