源码及原文:https://github.com/mythkiven/DiffuseMenu_Swift
动画效果如下:
版本记录
- V1.1.0 在 V1.0.0 基础之上,新增任意方向的直线弹出动画,至此,SDiffuseMenu 已实现直线\弧线的菜单弹射动画
- V1.1.0 新增常用方向的枚举,无需配置方向拿来即可使用
- 更新内容\配图及修复小 BUG
- 更多记录详情请戳一下
一、使用方法:
添加协议(动画状态回调) -> 设置选项数组 -> 设置菜单按钮 -> 动画属性配置 -> .addSubview(menu)
1、添加协议
class ViewController: UIViewController, SDiffuseMenuDelegate {
var menu: SDiffuseMenu!
}
2、设置菜单的选项按钮数据
// 加载图片
guard let storyMenuItemImage = UIImage(named:"menuitem-normal.png") else { fatalError("图片加载失败") }
guard let storyMenuItemImagePressed = UIImage(named:"menuitem-highlighted.png") else { fatalError("图片加载失败") }
guard let starImage = UIImage(named:"star.png") else { fatalError("图片加载失败") }
guard let starItemNormalImage = UIImage(named:"addbutton-normal.png") else { fatalError("图片加载失败") }
guard let starItemLightedImage = UIImage(named:"addbutton-highlighted.png") else { fatalError("图片加载失败") }
guard let starItemContentImage = UIImage(named:"plus-normal.png") else { fatalError("图片加载失败") }
guard let starItemContentLightedImage = UIImage(named:"plus-highlighted.png") else { fatalError("图片加载失败") }
var menus = [SDiffuseMenuItem]()
for _ in 0 ..< 6 {
let starMenuItem = SDiffuseMenuItem(image: storyMenuItemImage,
highlightedImage: storyMenuItemImagePressed,
contentImage: starImage,
highlightedContentImage: nil)
menus.append(starMenuItem)
}
3、设置菜单按钮
let startItem = SDiffuseMenuItem(image: starItemNormalImage,
highlightedImage: starItemLightedImage,
contentImage: starItemContentImage,
highlightedContentImage: starItemContentLightedImage)
4、添加 SDiffuseMenu
let menuRect = CGR