[翻译] IGLDropDownMenu

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上实现了。

时间: 2024-10-24 11:45:16

[翻译] IGLDropDownMenu的相关文章

在GlassFish应用服务器上创建并运行你的第一个Restful Web Service【翻译】

前言 本人一直开发Android应用,目前Android就业形势恶劣,甚至会一路下滑,因此决定学习服务器开发.采用的语言是java,IDE是Intellij,在下载Intellij的同时看到官网很多优秀的guide文章,于是按照guide成功完成了一个RESTful的demo.官方文档非常简洁,给我带来了很大的帮助,于是翻译之,希望对其他不愿意看原文的人有所帮助.由于水平有限,读者发现错误请指正,谢谢. 原文地址: https://www.jetbrains.com/help/idea/2016

Java 7 Concurrency Cookbook 翻译 序言

在日常的Java代码开发过程中,很难免地有对多线程的需求,掌握java多线程和并发的机制也是Java程序员写出更健壮和高效代码的基础.笔者找寻国内已出版的关于Java多线程和并发的的中文书籍和翻译书籍,大家一致推荐的是<Java Concurrency in Practice>,笔者暂时还没有看英文原版,笔者看的是它的翻译版<Java并发编程实战>,笔者读起来感觉并不通畅,不知道是翻译的问题还是原版本来就写得不够流畅,同时感觉知识的深度也超过了入门的需求. 笔者在机缘巧合之下,发现

[翻译] ORMLite document -- How to Use Part (二)

前言 此文档翻译于第一次学习 ORMLite 框架,如果发现当中有什么不对的地方,请指正.若翻译与原文档出现任何的不相符,请以原文档为准.原则上建议学习原英文文档. ---------------------------------------------------------------------------------------------- 二.如何使用 2.7 表的创建 ORMLite 提供了一些工具类为您存储在数据库中的类创建 table 和 schema. 2.7.1 Tabl

Reveal常用技巧(翻译来自Reveal官网blog)

翻译来自官网:http://revealapp.com/blog/reveal-common-tips-cn.html 以下基于Reveal 1.6. 用于快速上手的内置应用 刚刚下载Reveal,啥都还没配置呢,想先随便玩玩看,怎么办? 我们花了不少时间开发这个复杂程度类似与实际场景的Sample应用──Soundstagram(音频分享版的Instagram, ¯\_(ツ)_/¯),就是为了让大家能最快速地上手Reveal,尝试它的各种强大功能. 在 Help 菜单项中,点击 Inspect

qt 国际化(翻译时会触发changeEvent)

1. 修改工程文件 .pro ,加入翻译源文件 hello_world.ts: TRANSLATIONS += \        Resource/translations/hello_world.ts 写代码时需要注意下面两点:  2. 源码用 utf-8 字符集3. 源码中需要翻译的字符串必须用英文(不能有中文或其它语言),则需要用 tr()  函数.  例如: QMessageBox::information(this,tr("Information"),tr("Hel

还在吐槽翻译的外版书质量差吗?谈谈我个人的理解

很难想象哪个学习计算机技术的人是没看过这方面书籍的,如果只是在网上看看技术贴,那样得来的知识绝对是离散的,不系统的.而要真正学好一门学问(比如一门计算机语言或者一门技术),一本好书的作用是不言而喻的.很多人抱怨国人在技术图书方面抄来抄去,不求甚解,虽然出版图书者甚众,但最终成为精品者却凤毛麟角.于是,更多读者热衷于外版书.但显然,并非所有国人的外语水平都足以在阅读原版书籍时毫无障碍.那么退而求其次,寻求翻译版就成为一种看似不得已的选择. 不幸的是,网上对于翻译版书籍的吐槽可以说从未消停.我也看过

VLD 1.0 ReadMe翻译尝试

近期想学习下VLD的实现,打算从最简单的V1.0版本看起.以下是V1.0版本自己尝试翻译下,最新的2.x版本似乎强大了很多. 简介 Visual C++提供了内置的内存检测机制,但其充其量只满足了最小定位需求.VLD工具定位为内置内存泄漏的替代,提供了如下特性: 泄漏内存块的全调用栈回溯,包括文件及其行号: 泄漏内存完整转储(hex和ascii格式): 可定制的泄漏报告等级(报告的详细程度可配置) 相对于Purify和BoundsChecher工具其是免费的,而其他免费工具,往往需要入侵式代码.

如何调用有道翻译API(Java,HTTP)

申请Key 首先如图进入有道翻译,在下方点击"有道翻译API". 紧接着来调用数据接口,按提示完成下列输入框. 如下图所示,已经申请成功了. 下图是官方给的示例,可以有xml和json.jsonp等三种数据格式. 代码(Java) public class TestPost { public static void main(String[] args) { new ReadByPost().start(); } } class ReadByPost extends Thread{ @

Android studio project文件结构翻译

Android studio project文件结构翻译 个人翻译,用作备忘. 链接地址:https://developer.android.com/tools/projects/index.html#ApplicationModules Android Project Files Studio的项目文件和设置,设置的作用范围包含所有的module. 以以下的demo为例. .git:git版本控制的文件存放目录. .gradle:gradle执行一些编译所生成的目录 Idea: 由Intell