希望在Swift中为我正在开发的iOS应用程序创建一个浮动菜单。沿着小红圈菜单的线条,如下图所示。
我最初的想法是扩展UIViewController类并在那里添加相应的绘图/逻辑,但是,应用程序由一些其他控制器组成,更具体地说是UITableViewController,它本身扩展了UIViewController。是否也许有一个扩展的好地方?或者是否有一种更有说服力的方式在特定视图上绘制菜单而没有与菜单相关的代码的大量复制?
菜单本身将显示在大多数屏幕上,因此我需要有选择地启用它。根据用户当前所在的视图/屏幕,它也会有些上下文。
有什么好主意吗?
答案 0 :(得分:4)
您可以使用动画和所有内容创建自己的内容,也可以查看此库
https://github.com/lourenco-marinho/ActionButton
var actionButton: ActionButton!
override func viewDidLoad() {
super.viewDidLoad()
let twitterImage = UIImage(named: "twitter_icon.png")!
let plusImage = UIImage(named: "googleplus_icon.png")!
let twitter = ActionButtonItem(title: "Twitter", image: twitterImage)
twitter.action = { item in println("Twitter...") }
let google = ActionButtonItem(title: "Google Plus", image: plusImage)
google.action = { item in println("Google Plus...") }
actionButton = ActionButton(attachedToView: self.view, items: [twitter, google])
actionButton.action = { button in button.toggleMenu() }
}
答案 1 :(得分:2)
这个伟大的图书馆还有另一种选择:
https://github.com/yoavlt/LiquidFloatingActionButton
您只需在ViewController中实现委托和dataSource:
let floatingActionButton = LiquidFloatingActionButton(frame: floatingFrame)
floatingActionButton.dataSource = self
floatingActionButton.delegate = self
答案 2 :(得分:1)
您可以使用视图控制器包含。菜单可以是自己的视图控制器,其视图透明地放置在内容视图控制器的顶部。
例如,可以通过将两个容器视图拖出到一个vanilla视图控制器中来设置故事板。