iOS, UIMenu
🧐 UIMenu를 만들어볼거에요!
⛄️ 테이블 뷰에 적용하기(iOS 13.0 ↑)
Step 1
UIAction 배열을 생성합니다. 그리고 UIMenu를 생성하여 children 파라미터에 생성한 UIAction 배열을 적용합니다.
⛄️ ViewController.swift
class ViewController: UIViewController {
private lazy var menuItems: [UIAction] = {
return [
UIAction(
title: "Hello World!",
image: UIImage(systemName: "figure.wave"),
handler: { _ in
print("Hello World!")
}),
UIAction(
title: "Morning World!",
image: UIImage(systemName: "cloud.sun.fill"),
handler: { _ in
print("Moring World!")
}),
UIAction(
title: "Night World!",
image: UIImage(systemName: "moon.stars.fill"),
handler: { _ in
print("Night World!")
})
]
}()
private lazy var menu: UIMenu = {
return UIMenu(title: "", options: [], children: menuItems)
}()
...
}
Step 2
TableView를 생성해주세요. 그 다음, tableView(_:contextMenuConfigurationForRowAt:point:) 메소드를 추가해줍시다.
Step 3
위에서 생성한 메소드에서 UIContextMenuConfiguration를 리턴받아야합니다. 저는 identifier와 previewProvider는 없이 만들거라 nil값을 주기로 했습니다.
⛄️ ViewController.swift
...
extension ViewController: UITableViewDataSource, UITableViewDelegate {
...
func tableView(_ tableView: UITableView, contextMenuConfigurationForRowAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
return UIContextMenuConfiguration(identifier: nil,
previewProvider: nil,
actionProvider: {_ in
return self.menu
})
}
}
⛄️ 결과!
⛄️ 버튼에 적용하기(iOS 14.0 ↑)
Step 1
버튼에 메뉴를 적용하는 것은 테이블 뷰에 적용하는 것보다 더 쉽습니다. 우선 button: UIButton을 만들어주시고 viewDidLoad에 button.menu = menu(테이블 뷰에 적용하기 Step 1에서 만든 menu입니다.)를 추가해줍니다.
⛄️ ViewController.swift
class ViewController: UIViewController {
...
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
button.menu = menu
}
}
...
Step 2
여기까지만해도 완성이지만, 버튼을 짧게 눌렀을 때 바로 메뉴를 보이게 하기위해서는 viewDidLoad에 button.showsMenuAsPrimaryAction = true 를 추가해줍시다.
⛄️ ViewController.swift
class ViewController: UIViewController {
...
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
button.menu = menu
button.showsMenuAsPrimaryAction = true
}
}
...
⛄️ 결과!
🧐(아래 참고내용을 통해 더 자세한 정보를 확인할 수 있습니다!)
Apple Developer
Author And Source
이 문제에 관하여(iOS, UIMenu), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@idoyoung/iOS-UIMenu저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)