궁금한 내용을 검색해보세요!
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
서근 개발노트
티스토리에 팔로잉
SWIFTUI/Others

SwiftUI : Menu 버튼을 눌렀을 때 메뉴를 표시

서근
QUOTE THE DAY

“ 삶을 사는 데는 단 두가지 방법이 있다. 하나는 기적이 전혀 없다고 여기는 것이고 또 다른 하나는 모든 것이 기적이라고 여기는방식이다. ”

- Albert Einstein (알베르트 아인슈타인)
Written by SeogunSEOGUN

SwiftUI : Menu 버튼을 눌렀을 때 메뉴를 표시

본 게시글은 SwiftUI : Menu 버튼을 눌렀을 때 메뉴를 표시acking with swift님의 게시글을 참고하여 작성된 글 입니다.

 

menu에 대해 알아보도록 합시다.

SwiftUI는 버튼에서 팝업 메뉴를 표시하기위한 Menu라는 전용 뷰를 제공합니다. 메뉴에 표시할 항목을 제어하기 위해 다양한 버튼을 추가해줄 수 있습니다. 우선 간단한 예를 한번 알아보겠습니다.

swift
UNFOLDED
struct ContentView: View {
var body: some View {
Menu("Create") {
Button("Cancel", action: {})
Button("Search", action: {})
Button("Add", action: {})
}
}
}

Menu 키워드를 사용하고 메뉴 이름을 “Create”로 지정해줬습니다. 다음으로 메뉴 중괄호{ }안에 원하는만큼 버튼을 추가 할 수 있습니다. 메뉴에 버튼을 배치하는 순서가 중요합니다.

 

첫 번째 버튼이 제일 아래 배치되고, 버튼이 추가 될 수록 아래에서 위로 배치됩니다.

SwiftUI : Menu 버튼을 눌렀을 때 메뉴를 표시 - Menu

메뉴안에 메뉴

메뉴안에 메뉴를 넣을 수 도 있습니다.

swift
UNFOLDED
Menu("Create") {
Button("Cancel", action: {})
//버튼 아래에 메뉴를 한번 더 추가해준다.
Menu("More") {
Button("Rename", action: {})
Button("Developer Mode", action: {})
}
Button("Search", action: {})
Button("Add", action: {})
}

SwiftUI : Menu 버튼을 눌렀을 때 메뉴를 표시 - Menu - 메뉴안에 메뉴

마지막으로 메뉴에 label을 추가하여 메뉴버튼에 텍스트아이콘을 추가 할 수 있습니다. 우선 Menu("")에 적어줬었던 텍스트를 지워주고 아래와 같이 코드를 작성해주면 됩니다.

swift
UNFOLDED
Menu {
...
} label: {
Label ("String", systemImage : "icon.name")
}
swift
UNFOLDED
struct ContentView: View {
var body: some View {
Menu {
Button("Cancel", action: {})
//버튼 아래에 메뉴를 한번 더 추가해준다.
Menu("More") {
Button("Rename", action: {})
Button("Developer Mode", action: {})
}
Button("Search", action: {})
Button("Add", action: {})
} label: {
Label("Create", systemImage: "plus")
}
}
}

SwiftUI : Menu 버튼을 눌렀을 때 메뉴를 표시 - Menu - 메뉴안에 메뉴

메뉴안에 아이콘 추가

메뉴에 메뉴를 추가했었죠? 이제 그 메뉴안에 아이콘을 넣어줘서 좀 더 직관적인 Menu bar가 될 수 있도록 해보겠습니다.

 

이전포스팅에서 버튼에 대해 이해 하셨다면 쉬울거에요 :) 코드로 바로 확인해보도록 하겠습니다.

swift
UNFOLDED
Button(action: {
}) {
HStack {
Text("String")
Image(systemName: "icon.name")
}
}
swift
UNFOLDED
var body: some View {
Menu {
Button("Cancel", action: {})
//버튼 아래에 메뉴를 한번 더 추가해준다.
Menu("More") {
Button("Rename", action: {})
//메뉴안에 아이콘을 추가해준다.
Button(action: {
}) {
HStack {
Text("Developer mode")
Image(systemName: "person.crop.circle.fill")
}
}
}
Button(action: {
}) {
HStack {
Text("Serch")
Image(systemName: "magnifyingglass.circle")
}
}
Button("Add", action: {})
//최상단 메뉴 버튼
} label: {
Label("Create", systemImage: "plus")
}
}
}

SwiftUI : Menu 버튼을 눌렀을 때 메뉴를 표시 - Menu - 메뉴안에 아이콘 추가

 

 

읽어주셔서 감사합니다🤟

 

 

본 게시글의 전체코드 GitHub 👇🏻

 

Seogun95/SwiftUI_Menu_TUT

Menu에 대해 알아봅시다. Contribute to Seogun95/SwiftUI_Menu_TUT development by creating an account on GitHub....

github.com

이 글도 읽어보세요

[SwiftUI 기초/Button] - SwiftUI : Button

 


잘못된 내용이 있으면 언제든 피드백 부탁드립니다.


서근


위처럼 이미지 와 함께 댓글을 작성할 수 있습니다.