项目作者: jiangboLee

项目描述 :
基于AwesomeMenu的swift
高级语言: Swift
项目地址: git://github.com/jiangboLee/AwesomeMenuSwift.git
创建时间: 2017-08-21T02:04:00Z
项目社区:https://github.com/jiangboLee/AwesomeMenuSwift

开源协议:MIT License

下载


AwesomeMenuSwift

基于AwesomeMenu的swift

原oc版本链接

因为要用到这个AwesomeMenu这个第三方,但项目是Swift的,虽然可以用桥接文件,由于有空就将其转换成Swift.

使用方法与原来一模一样

  1. let startItem = AwesomeMenuItem(image: #imageLiteral(resourceName: "icon_pathMenu_background_normal"), highlightedImage: #imageLiteral(resourceName: "icon_pathMenu_background_highlighted"), contentImage: #imageLiteral(resourceName: "icon_pathMenu_mainMine_normal"), highlightedContentImage: #imageLiteral(resourceName: "icon_pathMenu_mainMine_highlighted"))
  2. let item0 = AwesomeMenuItem(image: #imageLiteral(resourceName: "bg_pathMenu_black_normal"), highlightedImage: nil, contentImage: #imageLiteral(resourceName: "icon_pathMenu_mainMine_normal"), highlightedContentImage: #imageLiteral(resourceName: "icon_pathMenu_mainMine_highlighted"))
  3. let item1 = AwesomeMenuItem(image: #imageLiteral(resourceName: "bg_pathMenu_black_normal"), highlightedImage: nil, contentImage: #imageLiteral(resourceName: "icon_pathMenu_collect_normal"), highlightedContentImage: #imageLiteral(resourceName: "icon_pathMenu_collect_highlighted"))
  4. let item2 = AwesomeMenuItem(image: #imageLiteral(resourceName: "bg_pathMenu_black_normal"), highlightedImage: nil, contentImage: #imageLiteral(resourceName: "icon_pathMenu_scan_normal"), highlightedContentImage: #imageLiteral(resourceName: "icon_pathMenu_scan_highlighted"))
  5. let item3 = AwesomeMenuItem(image: #imageLiteral(resourceName: "bg_pathMenu_black_normal"), highlightedImage: nil, contentImage: #imageLiteral(resourceName: "icon_pathMenu_more_normal"), highlightedContentImage: #imageLiteral(resourceName: "icon_pathMenu_more_highlighted"))
  6. let arr = [item0, item1, item2, item3]
  7. let menu = AwesomeMenu(frame: CGRect.zero, startItem: startItem, menuItems: arr)
  8. view.addSubview(menu)
  9. //设置展开角度
  10. menu.menuWholeAngle = CGFloat(Double.pi / 2)
  11. //中间按钮不旋转
  12. menu.rotateAddButton = false
  13. //设置菜单按钮的位置
  14. menu.startPoint = CGPoint(x: 50, y: 200)
  15. //设置透明度
  16. menu.alpha = 0.7
  17. //设置代理
  18. menu.delegate = self

代理方法如下

  1. extension ViewController: AwesomeMenuDelegate {
  2. func awesomeMenu(menu: AwesomeMenu, didSelectedIndex: NSInteger) {
  3. awesomeMenuWillAnimationClose(menu: menu)
  4. switch didSelectedIndex {
  5. case 0:
  6. print("点击了第一个")
  7. view.backgroundColor = UIColor.red
  8. case 1:
  9. print("点击了第二个")
  10. view.backgroundColor = UIColor.blue
  11. case 2:
  12. print("点击了第三个")
  13. view.backgroundColor = UIColor.yellow
  14. case 3:
  15. print("点击了第四个")
  16. view.backgroundColor = UIColor.lightGray
  17. default:
  18. print("")
  19. }
  20. }
  21. func awesomeMenuWillAnimationOpen(menu: AwesomeMenu) {
  22. print("WillAnimationOpen")
  23. UIView.animate(withDuration: 0.25) {
  24. menu.alpha = 1
  25. menu.contentImage = #imageLiteral(resourceName: "icon_pathMenu_cross_normal")
  26. menu.highlightedContentImage = #imageLiteral(resourceName: "icon_pathMenu_cross_highlighted")
  27. }
  28. }
  29. func awesomeMenuWillAnimationClose(menu: AwesomeMenu) {
  30. print("WillAnimationClose")
  31. UIView.animate(withDuration: 0.25) {
  32. menu.alpha = 0.7
  33. menu.contentImage = #imageLiteral(resourceName: "icon_pathMenu_mainMine_normal")
  34. menu.highlightedContentImage = #imageLiteral(resourceName: "icon_pathMenu_mainMine_highlighted")
  35. }
  36. }
  37. func awesomeMenuDidFinishAnimationOpen(menu: AwesomeMenu) {
  38. print("DidFinishAnimationOpen")
  39. }
  40. func awesomeMenuDidFinishAnimationClose(menu: AwesomeMenu) {
  41. print("DidFinishAnimationClose")
  42. }
  43. }

demo效果图

1.gif

demo地址