IGLDropDownMenu

An iOS drop down menu with pretty animation.

一种iOS点击下拉菜单样式,动画效果很绚丽。

Screenshot - 截图

How To Use - 如何使用

!Try the demo. It's really helpful! 试试demo,看看效果哦!

Sample Code - 示例源码

  1. Create your IGLDropDownItem array and set up 创建IGLDropDownItem数组然后进行设置

    NSMutableArray *dropdownItems = [[NSMutableArray alloc] init];
    IGLDropDownItem *item = [[IGLDropDownItem alloc] init];
    [item setIconImage:[UIImage imageNamed:@"icon.png"]];
    [item setText:@"title"];
    [dropdownItems addObject:item];
  2. Create your IGLDropDownMenu and set the up the parameter name dropDownItems 创建你的IGLDropDownMenu,设置dropDownItems的名字

    IGLDropDownMenu *dropDownMenu = [[IGLDropDownMenu alloc] init];
    [dropDownMenu setFrame:CGRectMake(0, 0, 200, 45)];
    dropDownMenu.menuText = @"Choose Weather";
    dropDownMenu.menuIconImage = [UIImage imageNamed:@"chooserIcon.png"]];
    dropDownMenu.paddingLeft = 15; // padding left for the content of the button
  3. modify the params of IGLDropDownMenu 修改IGLDropDownMenu的参数

    dropDownMenu.type = IGLDropDownMenuTypeStack;
    dropDownMenu.gutterY = 5;
    dropDownMenu.itemAnimationDelay = 0.1;
    dropDownMenu.rotate = IGLDropDownMenuRotateRandom;
  4. Call the reloadView method (Very Important!) 执行reloadView(非常重要!)

    // every time you change the params you should call reloadView method
    [dropDownMenu reloadView];

Parameters - 参数

These are just some of the parameters you can use, you can find more(or make more) in the code.

你可以使用很多很多的参数,详情请参考源码吧。

For IGLDropDownMenu

  • animationDuration set the duration(s) of the animation in second 设置动画时间
  • animationOption set the UIViewAnimationOptions for the animation 设置动画样式
  • itemAnimationDelay set the delay(s) before each of item start to animate 设置每个item的延时动画时间

  • direction set the direction when the menu expand 设置菜单展开的方向

    • IGLDropDownMenuDirectionDown default value, expand downward
    • IGLDropDownMenuDirectionUp expand upward
  • rotate set the rotate style when the menu on expand 设置菜单展开时候的旋转风格

    • IGLDropDownMenuRotateNone default value, for no rotate
    • IGLDropDownMenuRotateLeft rotate to left on expand
    • IGLDropDownMenuRotateRight rotate to right on expand
    • IGLDropDownMenuRotateRandom rotate random on expand every single time
  • type set the menu type (remember when you set the type to SlidingIn* you can't have the rotate type at the same time.) 设置菜单样式

    • IGLDropDownMenuTypeNormal default value, item will hide behind the menu button on fold
    • IGLDropDownMenuTypeStack item will hide behind the menu button and make a stack like look
    • IGLDropDownMenuTypeSlidingInBoth item will slide in and out from both sides
    • IGLDropDownMenuTypeSlidingInFromLeft item will slide in from left
    • IGLDropDownMenuTypeSlidingInFromRight item will slide in from right
  • slidingInOffset set the offset value for the items slide in and out 设置item滑进来时候的偏移量

  • gutterY set the Y gutter between items 设置item之间的间隔
  • alphaOnFold set the item alpha value when menu on fold, only use this when the style won't fit your mind 菜单层叠时候的透明度
  • flipWhenToggleView when you set this to true, the menu button will flip up when you click 当你设置这个值为true,这个按钮会向上翻
  • useSpringAnimation use the spring animation for iOS7 or higher version, default is true 使用spring动画效果,默认开启

For IGLDropDownItem

  • iconImage set the icon image for the item 设置item的图片
  • text set the text string for the item 设置text
  • textLabel for you to adjust the text label style 方便你设置调整Label样式
  • object you can store your custom item in this preporty 你可以用它来存储你的自定义item

Remember the menuButton in IGLDropDownMenu is also an IGLDropDownItem.

请记住,在IGLDropDownMenu中,menuButton也是IGLDropDownItem。

Requirements - 需要

  • target platform: >=iOS 6.0 (I never test the version below 6.0, maybe you can make some try and tell me.)  >iOS6.0
  • ARC ARC

TODO - 以后要做的事情

  1. make IGLDropDownItem more customizable 让IGLDropDownItem可定制程度更高
  2. add the spring animation for iOS 7 or higher version
  3. add more animation effect for the menu 更多的动画效果
  4. just contact me and tell me more 联系我,给我建议帮我改进

Thanks - 感谢

This drop-down menu idea is come from here, I found this demo one day and just implement it on iOS.

这个菜单的主意来自于 here,我发现了这个demo后,然后在iOS上实现了。

[翻译] IGLDropDownMenu的更多相关文章

  1. 《Django By Example》第五章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:大家好,我是新来的翻译, ...

  2. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  3. [翻译]开发文档:android Bitmap的高效使用

    内容概述 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently",包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存 ...

  4. 【探索】机器指令翻译成 JavaScript

    前言 前些时候研究脚本混淆时,打算先学一些「程序流程」相关的概念.为了不因太枯燥而放弃,决定想一个有趣的案例,可以边探索边学. 于是想了一个话题:尝试将机器指令 1:1 翻译 成 JavaScript ...

  5. 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...

  6. 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...

  7. 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...

  8. 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?

    0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...

  9. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点

    在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...

随机推荐

  1. linux mint 18.2 安装wireshark

    Method 1: Via PPA Step 1: Add the official PPA sudo add-apt-repository ppa:wireshark-dev/stable Step ...

  2. 对Tensorflow中tensor的理解

    Tensor即张量,在tensorflow中所有的数据都通过张量流来传输,在看代码的时候,对张量的概念很不解,很容易和矩阵弄混,今天晚上查了点资料,并深入了解了一下,简单总结一下什么是张量的阶,以及张 ...

  3. Basic .do(Can be used as template)

    #Time: 2017-05-06  #By : YINBin@122275    quit -sim    cd D:/Documents/Work/UVM_PRJ/uvm-crc-test set ...

  4. rails命令行命令

    x.指定端口启动rails项目 ruby script/server webrick -p 3000 ------------------------------------------------- ...

  5. C++实现二叉排序树

    1.定义 二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树. 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子 ...

  6. mysql-5.6.31安装(单实例 Linux)

    安装版本:mysql-5.6.31 安装环境:Linux RHEL6.5.x86 安装要求:单实例,端口为默认:3306              (1) 要求安装Mysql数据库版本号及包名为:my ...

  7. Ruby(2): 基本语法上

    表达式和变量: 这两点和其他主流的编程语言基本没有差别,这里直接跳过. 需要注意的是 ruby中 x=x+1 可以写成 x+=1 但是不支持 x++ , x-- 等一元运算符  比较运算符和表达式: ...

  8. Tomcat源码分析——请求原理分析(下)

    前言 本文继续讲解TOMCAT的请求原理分析,建议朋友们阅读本文时首先阅读过<TOMCAT源码分析——请求原理分析(上)>和<TOMCAT源码分析——请求原理分析(中)>.在& ...

  9. 在用户控件(ASCX)创建用户控件(ASCX)

    "我建了两个ascx,ascxA,ascxBascxA中放了一个PlaceHold,ascxB中放了一个textBoxascxA在page_load中动态创建了5个ascxB但是页面上什么都 ...

  10. rust by example 2

    本来这篇准备明天在写的,但正好今天的Release没出问题,就接着写吧 rust里的原生类型: 有符号整数: i8, i16, i32, i64和isize(指针大小) 无符号整数:u8, u16,  ...