一、 实际效果
 
演示地址

二、实现原理
主要用Button+List组件,和遮罩实现。

1. 点击Button时,将List下移展开。
2. 再次点击Button,或者选中List中的某一项时,将List上移收缩。

三、使用方法

1. 拖动UIPopupMenu自定义组件到场景exml上

2. 根据需求自定义UIPopupMenuSkin,并为组件UIPopupMenu设置皮肤(自定义皮肤UIPopupMenuSkin具体查看Demo)

3. 根据需求自定义List条目皮肤(自定义List条目皮肤具体查看Demo)

4. 代码中设置List条目皮肤,并增加二级菜单选项

这样就行了。

5. 自定义皮肤
UIPopupMenu和List的皮肤可根据需求自替换。
可自行自定义多种皮肤,不同图片,大小高宽等,适应不同场合。比如UIPopupMenuSkinA,UIPopupMenuSkinB,UIPopupMenuSkinC。
但是皮肤里面组件的命名必须一致对应上,比如menuBg必须是menuBg,否则代码会找不着这个组件而报错。

 

四、Demo下载

【咸鱼教程】一个简单的弹出二级菜单UIPopupMenu的更多相关文章

  1. 代码录播:jQueryMobile 实现一个简单的弹出框效果

    今天给大家带来的是 jQueryMobile 实现一个简单的弹出框效果,有兴趣的童鞋可以试试哦~ ^_^ 阅读原文:www.gbtags.com  

  2. 转:jQuery弹出二级菜单

    <html> <head> <meta http-equiv="content-type" content="text/html; char ...

  3. 纯css实现鼠标感应弹出二级菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 一个简单的弹出层ProgressBar

    https://github.com/eltld/SimpleLoading

  5. 关于bootstrap弹出二级对话框的使用

    弹出二级对话框,即在对话框的基础上再弹出一个对话框.这对于CRM管理类系统来说应用场景很常见.看到网上有关于实现二级弹出框的方法,需要在一级对话框页面上添加不少css样式.其实,完全可以不用这么麻烦. ...

  6. JavaScript 实现简单的 弹出框关闭框

    JavaScript 实现简单的 弹出框关闭框 知识点: 1.javaScript 添加HTML标签 2.javaScript 添加HTML标签属性 3.javaScript 追加元素 代码献上: & ...

  7. EditorGUILayout.EnumPopup 枚举弹出选择菜单

    http://www.unity蛮牛.com/thread-25490-1-1.html http://www.unity蛮牛.com/m/Script/EditorGUILayout.EnumPop ...

  8. WPF:设置弹出子菜单的是否可用状态及效果

    需求: 设置弹出子菜单(二级)项仅首项可用,其他项均不可用:不可用是呈灰色效果. 注: 菜单项都是依据层级数据模板.具体格式如下: StackBlock{TextBlock{Image}.TextBl ...

  9. ListView的使用(二)长按弹出上下文菜单

    public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView ...

随机推荐

  1. 如何在Sql Server中读取最近一段时间的记录,比如取最近3天的或最近3个月的记录。

    如何在Sql Server中读取最近一段时间的记录,比如取最近3天的或最近3个月的记录. 主要用到DATEADD函数,下面是详细语句 取最近3天 select * from 表名where rq> ...

  2. Redis面试题及答案整理

    1.什么是Redis?简述它的优缺点? Redis的全称是:Remote Dictionary.Server,本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载 ...

  3. windows下安装node.js

    由于shopnc的im需要node.js 先安装下node.js 下载node.js 直接运行 安装完成后 win+R,出入cmd 安装时已经自动配置了环境变量(如果没设置环境变量,变量名:NODE_ ...

  4. VirtualBox导入已存在的VHD遇到的uuid冲突问题

    解决方法: 用命令行进入VirtualBox的安装目录,使用下面的命令: (进入命令行窗口,cmd模式) C:\Program Files\Oracle\VirtualBox>VBoxManag ...

  5. go反射的规则

    第一次知道反射的时候还是许多年前在学校里玩 C# 的时候.那时总是弄不清楚这个复杂的玩意能有什么实际用途……然后发现 Java 有这个,后来发现 PHP 也有了,再后来 Objective-C.Pyt ...

  6. 正则 /\D/g

    onKeyUp="this.value=this.value.replace(/\D/g,'');"红色的是什么意识 /g是什么意思 ----------------------- ...

  7. Hightchart 技巧

    http://blog.csdn.net/u014796515/article/details/24428131

  8. Mysql Bypass小结

    总结一些Bypass的方法, 1. 绕过空格过滤,使用注释/**/来替换 绕过安全狗简单的两个方法: /*'+'*/ /**a*/ 2.使用大小写绕过某些关键字的过滤 SeLeCT * From te ...

  9. Ruby Tutorial

    http://www.tutorialspoint.com/ruby/ruby_quick_guide.htm http://www.cnblogs.com/PurpleCow/archive/201 ...

  10. 使用 urllib 设置代理服务

    (1) 如果我们一直用同一个IP去请求同一个网站上的网页,久了之后可能会被该网站服务器屏蔽,因此我们可以使用代理IP来发起请求,代理实际上指的就是代理服务器(2) 当我们使用代理IP发起请求时,服务器 ...