美文网首页
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

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