美文网首页
iOS 花型菜单选择工具 FKFlowerMenu

iOS 花型菜单选择工具 FKFlowerMenu

作者: _铲屎官_ | 来源:发表于2018-03-18 20:42 被阅读0次
小姐姐镇楼.jpeg

这个也是来自于项目中的一个需求,点击一个按钮,可以像开花一样散开多个菜单选项栏,点击不同的菜单选项栏会响应不同的点击事件,需要配上散开/收起的动画效果。为了满足这个需求,封装了一个 FKFlowerMenu 花型菜单选择工具。

下载地址:github下载

FKFlowerMenuDemo运行结果.jpeg

支持功能

  • 自定义控制菜单选择项的数目
  • 自定义控制菜单选项栏的展开角度,散开距离
  • 菜单的主按钮是否支持动画
  • 菜单的展开方向支持四个方向

使用

FKFlowerMenuDemo是该工具的一个使用范例,如果需要将该工具使用到自己的工程中,只用把demo中到FKFloweMenu文件夹中的文件引入工程就可以了。
FKFloweMenu中包含FKFlowerMenuItemFKFloweMenu文件。
FKFlowerMenuItem文件是花型菜单工具展开之后的选择按钮项,选择按钮项支持自定义图片,大小,响应事件。
FKFloweMenu文件夹中FKFlowerMenuBtn文件就是花型菜单工具控制展开/收起的中心按钮,它属于UIButton类型,使用者只需要创建一个Button并继承于它,就可以轻松的使用这个花型菜单工具了。

设置FKFlowerMenuBtn各项属性

Button创建成功并继承FKFlowerMenuBtn,确定了中心按钮的位置,我们就完成了使用的第一步。
下面我们需要来设置中心按钮的各项属性。

/**散开的最大距离*/
@property (nonatomic , assign) CGFloat maxLength;
/**散开的最大角度*/
@property (nonatomic , assign) CGFloat maxRadian;
/**散开的方向*/
@property (nonatomic , assign) DirectionWay derectionWay;
/**是否需要旋转的动画效果*/
@property (nonatomic , assign) BOOL needAnimation;

maxLength用来控制展开的选项按钮距离中心按钮圆心的距离。
maxRadian用来控制花型菜单展开后,最外面的两个选项按钮所呈的最大角度。
needAnimation中心按钮是否需要旋转动画,目前旋转动画的动作并没有自定义,支持点击后顺时针45度旋转(展开动画)/逆时针45度旋转(收起动画)。如果不需要的朋友可以直接忽略这个属性,或者设置为NO

derectionWay用来控制菜单按钮的展开方向,目前支持4个方向,使用者在确认中心按钮的位置后,可根据需要设置方向。由4个枚举变量来控制。

typedef NS_ENUM (NSInteger, DirectionWay) {
    OnTheTopLeft = 0,      //左上方向
    OnTheTopRight,         //右上方向
    OnTheBottomLeft,       //左下方向
    OnTheBottomRight,      //右上方向
};

添加菜单选项按钮

设置完中心按钮的各种属性之后,我们需要创建菜单选择按钮

- (id)initWithImage:(UIImage *)image withBounds:(CGFloat)bounds selectedBlock:(SelectedBlock)selectedBlock;

通过上面这个方法设置选择按钮的显示图片,大小,以及点击的响应事件。

将创建好的选择按钮添加至数组,以数组的形式和中心按钮作关联。

/**设置散发出来的子item*/
- (void)addSubItems:(NSArray<FKFlowerMenuItem*>*)itemArr;

这是FKFlowerMenuBtn用来添加FKFlowerMenuItem的方法,添加成功的选择按钮会和中心按钮显示在一个视图层级上。

到这一步,中心按钮选择按钮的关联和设置就已经完成了,运行起我们的工程,就可以开心的使用花型菜单了。……^ _ ^

完整的设置过程

- (void)configureBtn {
    
    FKFlowerMenuItem *item0 = [[FKFlowerMenuItem alloc] initWithImage:[UIImage imageNamed:@"add_mytask_askr.png"] withBounds:30 selectedBlock:^{
        NSLog(@"第1个");
    }];
    
    FKFlowerMenuItem *item1 = [[FKFlowerMenuItem alloc] initWithImage:[UIImage imageNamed:@"Task_Addphoto_Btn.png"] withBounds:30 selectedBlock:^{
        NSLog(@"第2个");
    }];
    
    FKFlowerMenuItem *item2 = [[FKFlowerMenuItem alloc] initWithImage:[UIImage imageNamed:@"add_mytask_askr.png"] withBounds:30 selectedBlock:^{
        NSLog(@"第3个");
    }];
    
    self.leftFlowersBtn.maxLength = 75;
    self.leftFlowersBtn.maxRadian = M_PI_4 * 3 ;
    self.leftFlowersBtn.derectionWay = OnTheBottomRight;
    [self.leftFlowersBtn addSubItems:@[item0,item1,item2]];
}

本文主要讲解了FKFlowerMenu的使用方法,具体可以参考 github下载 地址中的Demo,也欢迎各位朋友留言指正,指点。

相关文章

  • iOS 花型菜单选择工具 FKFlowerMenu

    这个也是来自于项目中的一个需求,点击一个按钮,可以像开花一样散开多个菜单选项栏,点击不同的菜单选项栏会响应不同的点...

  • gimp中文版英文版中英文对照版

    主面板 菜单栏菜单栏 文件 编辑 选择 查看 图像 图层 颜色 工具 滤镜 窗口 帮助 左侧工具箱 矩形选择工具矩...

  • Maya(一) 认识界面

    菜单 菜单工具 快捷工具架:存放比较常用的功能,上面有一些选项卡 工具盒:常用的操作工具(如:选择、移动、旋转) ...

  • UG10.0首次配置

    1关闭菜单栏,点击关闭,选择否(不保存) 2 点击菜单-首选项-用户界面 布局--选择经典工具条 ...

  • 262 Windows项目界面设计(一)——菜单栏与状态栏设计

    项目主窗体的设计——菜单栏与状态栏设计 1、菜单栏的设计 通过左侧工具箱,选择菜单和工具栏,拖动MenuStrip...

  • iOS创建framework静态库(SDK&组件化)

    一、创建 1、新建项目 打开Xcode,菜单:File -- New -- Project...,选择iOS --...

  • 编辑MDP

    机器相关参数(MDP)是焊线机特有的参数。选择工具模式菜单的【4】编辑MDP可以进入MDP菜单。编辑MDP菜单允许...

  • Electron开发实战之13-webwxapi-01

    源码 j、相关视频 Chrome 开发者工具 打开Chrome 开发者工具 在Chrome菜单中选择 更多工具 >...

  • 如何设置高点击率的公众号菜单

    存在的问题: 1. 菜单栏的设置逻辑混乱;2. 菜单栏的实用性不够; 菜单栏的本质: 一套目录型检索工具,用户可以...

  • AI笔记1

    1,平均等分 1. 先用多边型工具画一个五角星。 2. 选中五角星,然后在菜单栏选择 ”对象 --> 路径 -->...

网友评论

      本文标题:iOS 花型菜单选择工具 FKFlowerMenu

      本文链接:https://www.haomeiwen.com/subject/gnieqftx.html