SwiftUI 内功之Menu 基础使用(教程含源码)

本文介绍了SwiftUI中的Menu组件,通过实例展示了如何使用Menu消除操作歧义,进行内容选择,划分section以及设置样式。读者将学会在SwiftUI应用中创建和定制菜单,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本周,我们又获得了一个Xcode Beta,它将菜单带入SwiftUI世界。菜单将替换自iOS 8以来就一直在使用的action sheet。action sheet不能与我们如今拥有的大屏幕配合使用。本文,我们将学习如何使用菜单在SwiftUI中提供辅助操作或选择选项。

本文价值与收获

看完本文后,您将能够作出下面的界面

截屏2020-08-05 上午11.04.33.png

使用Menu消除歧义

选择

划分Section

SlideMenuControllerSwift ======================== [![Platform](http://img.shields.io/badge/platform-ios-blue.svg?style=flat )](https://developer.apple.com/iphone/index.action) [![Language](http://img.shields.io/badge/language-swift-brightgreen.svg?style=flat )](https://developer.apple.com/swift) [![License](http://img.shields.io/badge/license-MIT-lightgrey.svg?style=flat )](http://mit-license.org) [![Issues](https://img.shields.io/github/issues/dekatotoro/SlideMenuControllerSwift.svg?style=flat )](https://github.com/dekatotoro/SlideMenuControllerSwift/issues?state=open) iOS Slide View based on iQON, Feedly, Google+, Ameba iPhone app. ![sample](Screenshots/SlideMenuControllerSwift.gif) ##Installation ####CocoaPods comming soon... ####Manually Add the `SlideMenuController.swift` file to your project. ##Usage ###Setup In your app delegate: ```swift func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // create viewController code... let slideMenuController = SlideMenuController(mainViewController: mainViewController, leftMenuViewController: leftViewController, rightMenuViewController: rightViewController) self.window?.rootViewController = slideMenuController self.window?.makeKeyAndVisible() return true } ``` If you want to use the custom option, please change the SlideMenuOption class. ```swift class SlideMenuOption { let leftViewWidth: CGFloat = 270.0 let leftBezelWidth: CGFloat = 16.0 let contentViewScale: CGFloat = 0.96 let contentViewOpacity: CGFloat = 0.5 let shadowOpacity: CGFloat = 0.0 let shadowRadius: CGFloat = 0.0 let shadowOffset: CGSize = CGSizeMake(0,0) let panFromBezel: Bool = true let animationDuration: CGFloat = 0.4 let rightViewWidth: CGFloat = 270.0 let rightBezelWidth: CGFloat = 16.0 let rightPanFromBezel: Bool = true let hideStatusBar: Bool = true let pointOfNoReturnWidth: CGFloat = 44.0 init() { } } ``` ###You can access from UIViewController ```swift self.slideMenuController()? ``` or ```swift if let slideMenuController = self.slideMenuController() { // some code } ``` ### add navigationBarButton ```swift viewController.addLeftBarButtonWithImage(UIImage(named: "hoge")!) viewController.addRightBarButtonWithImage(UIImage(named: "fuga")!) ``` ### open and close ```swift // Open self.slideMenuController()?.openLeft() self.slideMenuController()?.openRight() // close self.slideMenuController()?.closeLeft() self.slideMenuController()?.closeRight() ``` ## Requirements Requires iOS 7.0 and ARC. ## Features - Highly customizable - Complete example ## Contributing Forks, patches and other feedback are welcome. ## Creator [Yuji Hato](https://github.com/dekatotoro) [Blog](http://buzzmemo.blogspot.jp/) ## License SlideMenuControllerSwift is available under the MIT license. See the LICENSE file for more info.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识大胖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值