본문 바로가기

Language/Swift45

SwiftUI를 이용한 편집 버튼 만들기 SwiftUI는 컬렉션에서 객체를 삭제하는 방법을 제어하는 데 사용할 onDelete() 수정자를 제공한다. 이 기능은 목록에서 각 행에만 사용된다. 기본 코드 import SwiftUI struct ContentView: View { @State private var fruits = [ "Apple", "Banana", "Papaya", "Mango" ] var body: some View { NavigationView { List { ForEach(fruits, id: \.self) { fruit in Text(fruit) } .onDelete { fruits.remove(atOffsets: $0) } .onMove { fruits.move(fromOffsets: $0, toOffset: $1) } .. 2022. 11. 5.
SwiftUI를 이용한 구분선 그리기 (Divider) VStack이나 HStack 뷰로 여러 개의 뷰를 쌓을 때 구분되어야 하는 뷰도 있다. 그럴 때 Divider 뷰를 이용해 구분선을 짓는다. 기본코드 import SwiftUI struct ContentView: View { var body: some View { VStack (spacing: 40) { Text("Menu") Divider() Image(systemName: "a.circle.fill") Divider() } } } 실행화면 Divider 색상 색상은 background 속성을 이용해 구분선의 색상을 지정한다. Group { Text("Divider 색상") Divider() .background(Color.blue) Text("Divicder 색상2") Divider() .backgr.. 2022. 11. 4.
SwiftUI를 이용한 숨기기 위젯 구현하기(DisclosureGroup) 내부에 있는 콘텐츠를 Bool 속성 변수의 값에 따라 보여줄지말지가 필요할 때 사용한다. 그래서 내부에 많은 뷰를 배치할 수 있다. 다시 말해, DisclosureGroup View는 콘텐츠를 식별하는 레이블과 콘텐츠를 표시하고 숨기는 컨트롤로 구성된다. Group 내부에 콘텐츠가 확장되거나 축소 상태가 된다. 기본코드 import SwiftUI struct ToggleStates { var oneIsOn: Bool = false var twoIsOn: Bool = true } struct ContentView: View { @State private var toggleStates = ToggleStates() @State private var topExpanded: Bool = true var body.. 2022. 11. 3.
SwiftUI를 이용한 트리거 이벤트 발생 ( Button ) 트리거(Trigger) 될 때 작업을 수행하는 컨트롤이다. 기본코드 Button(action: { }) { HStack { Image(systemName: "folder.fill") Text("폴더") } } 실행화면 Action과 Label 을 제공하여 버튼을 만들 수 있다. 액션은 사용자가 버튼을 클릭하거나 택할 때 작업을 수행하는 메서드 또는 클로저 속성이다. 레이블은 예를 들어 ‘취소’와 같은 텍스트 또는 ‘뒤로 가기 화살표’와 같은 아이콘을 표시하여 단추의 동작을 실행하는 View이다. 텍스트 전용 레이블의 일반적인 경우에는 후행 클로저 대신 제목 문자열 (또는 현지화된 문자열 키) 사용하는 편리한 이니셜 라이저를 사용할 수 있다. 버튼에 액션 넣기 import SwiftUI struct Con.. 2022. 11. 2.

\