iOS:制作左右侧滑(抽屉式)菜单
感谢控件作者:https://github.com/SocialObjects-Software/AMSlideMenu
首先上效果图:
这里我们使用AMSlideMenu来实现左右侧滑菜单的效果。控件支持单独左侧滑、单独右侧滑和左右侧滑。同时支持Storyboard和xib两种开发模式。这里介绍第二种,在xib中的开发。
开发步骤如下:
1. 在Podfile中添加:pod "AMSlideMenu", "~> 1.5.3",通过pod install导入项目。
2. 在Pods项目中(注意:不是你自己的项目),在Pods-*.pch文件中添加如下一行代码:
// 必须,否则xib方式会报错
#define AMSlideMenuWithoutStoryboards
3. 实现一个继承了AMSlideMenuMainViewController类的ViewController。主要代码如下:
- (void)viewDidLoad
{
/*******************************
* 初始化菜单
*******************************/
self.leftMenu = [[LeftMenuTVC alloc] initWithNibName:@"LeftMenuTVC" bundle:nil];
self.rightMenu = [[RightMenuTVC alloc] initWithNibName:@"RightMenuTVC" bundle:nil];
/*******************************
* 结束初始化
*******************************/ [super viewDidLoad];
// Do any additional setup after loading the view.
} // 设置左侧菜单按钮样式(右侧按钮类似操作)
- (void)configureLeftMenuButton:(UIButton *)button
{
CGRect frame = button.frame;
frame.origin = (CGPoint){,};
frame.size = (CGSize){,};
button.frame = frame; [button setImage:[UIImage imageNamed:@"icon-menu.png"] forState:UIControlStateNormal];
}
4. 实现一个继承了AMSlideMenuLeftTableViewController的UITableViewController的类作为左侧菜单(右侧菜单类似)
主要代码如下:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib. // 初始化菜单项
self.tableData = [@[@"VC 1",@"VC 2",@"VC 3"] mutableCopy];
} // 点击菜单项跳转到不同的VC
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UINavigationController *nvc;
UIViewController *rootVC;
switch (indexPath.row) {
case :
{
rootVC = [[FirstVC alloc] initWithNibName:@"FirstVC" bundle:nil];
}
break;
case :
{
rootVC = [[SecondVC alloc] initWithNibName:@"SecondVC" bundle:nil];
}
break;
case :
{
rootVC = [[ThirdVC alloc] initWithNibName:@"ThirdVC" bundle:nil];
}
break; default:
break;
}
nvc = [[UINavigationController alloc] initWithRootViewController:rootVC]; [self openContentNavigationController:nvc];
}
5. 最后记得在AppDelegate中要做这步操作(当然,其它地方也可以):
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
MainVC *mainVC = [[MainVC alloc] init]; UINavigationController *startNVC = [[UINavigationController alloc] initWithRootViewController:mainVC]; self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.rootViewController = startNVC;
[self.window makeKeyAndVisible]; return YES;
}
有不明白的地方可以直接下载源码。源码地址:http://files.cnblogs.com/ilovewindy/AMSlideMenu.zip
iOS:制作左右侧滑(抽屉式)菜单的更多相关文章
- 史上最简单,一步集成侧滑(删除)菜单,高仿QQ、IOS。
重要的话 开头说,not for the RecyclerView or ListView, for the Any ViewGroup. 本控件不依赖任何父布局,不是针对 RecyclerView. ...
- Smint – 用于单页网站制作的 jQuery 导航菜单插件
Smint 是一款用于实现单页风格网站的 jQuery 导航插件,包含两部分:固定在页面顶部的精美导航条和能够在你点击的时候自动滚动到对应内容的菜单按钮.Smint 使用非常简单,只有一个参数用于设置 ...
- Android笔记——Drawerlayout创建侧滑出菜单
1.首先务必导入support-v4包 2.布局文件主标签为<android.support.v4.widget.DrawerLayout>,并为其设置id 其子标签必须包 ...
- 巧用CSS3 :target 伪类制作Dropdown下拉菜单(无JS)
:target 是CSS3 中新增的一个伪类,用以匹配当前页面的URI中某个标志符的目标元素(比如说当前页面URL下添加#comment就会定位到id=“comment”的位置,俗称锚).CSS3 为 ...
- css3制作左右拉伸动画菜单
微博上看到这样一篇文章(http://js.itivy.com/?p=495),用jquery和css3制作左右拉伸动画菜单,看了下实现效果(http://js.itivy.com/jiaoben96 ...
- Excel应用----制作二级下拉菜单【转】
应用: 原始数据源是两列的源数据,那该如何制作二级下拉菜单, 当然可以将这两列的数据源,转换成上面的那种格式,再用上面的方法来制作. 今天教大学的方法是直接通过这种两列式的数据源来制作下拉菜单,如果A ...
- .NET CORE(C#) WPF 抽屉式菜单
微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. .NET CORE(C#) WPF 抽屉式菜单 阅读导航 本文背景 代码实现 本文参考 源码 ...
- 巧用CSS3:target 伪类制作Dropdown下拉菜单(无JS)
原文链接:http://devework.com/css3-target-dropdown.html :target 是CSS3 中新增的一个伪类,用以匹配当前页面的URI中某个标志符的目标元素(比如 ...
- iOS仿QQ侧滑菜单、登录按钮动画、仿斗鱼直播APP、城市选择器、自动布局等源码
iOS精选源码 QQ侧滑菜单,右滑菜单,QQ展开菜单,QQ好友分组 登录按钮 3分钟快捷创建高性能轮播图 ScrollView嵌套ScrolloView(UITableView .UICollecti ...
随机推荐
- 【BZOJ2762】[JLOI2011]不等式组(树状数组)
题目: BZOJ2762 分析: 加入的不等式分三种情况 当\(a>0\),可以变成\(x>\lfloor \frac{c-b}{a}\rfloor\) 当\(a=0\),若\(b> ...
- NOIP真题汇总
想想在NOIP前总得做做真题吧,于是长达一个月的刷题开始了 涉及2008-2016年大部分题目 NOIP [2008] 4/4 1.传纸条:清真的三维DP 2.笨小猴:字符串模拟 3.火柴棒等式:打表 ...
- java学习笔记_网络
客户端 import java.io.*; import java.net.*; public class DailyAdviceClient { public void go() { try { S ...
- Android 解决ScrollView嵌套RecyclerView导致滑动不流畅的问题
最近做的项目中遇到了ScrollView嵌套RecyclerView,刚写完功能测试,直接卡出翔了,后来通过网上查找资料和 自己的实践,找出了两种方法解决这个问题. 首先来个最简单的方法: recyc ...
- 高级Java知识
高级Java知识(JVM.字节码.内存模型) 内存=方法区+栈空间+堆+程序计数器 栈(stack)包括虚拟机栈(VM stack)和本地方法栈(native method stack). 方法区(m ...
- SQL基本操作——通配符
SQL 通配符:在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符.SQL 通配符必须与 LIKE 运算符一起使用.在 SQL 中,可使用以下通配符: 通配符 描述 % 替代一个或多个字符 ...
- 使用NSSM将Kibana安装为Windows服务
Kibana不同于Elasticsearch,前者官方并没有提供安装为系统服务的方法,如果直接运行在生产环境中会尤为麻烦,一旦服务器因故重启就要手动开启,所以将Kibana安装为系统服务非常有必要. ...
- Quartz实战
https://my.oschina.net/yinxiaoling/blog/542336?fromerr=s3ko7u33 Quartz实战 > 一.内存型(1) <bean name ...
- (转)Hibernate关联映射——一对多(多对一)
http://blog.csdn.net/yerenyuan_pku/article/details/70152173 Hibernate关联映射——一对多(多对一) 我们以客户(Customer)与 ...
- iOS 9 中可用的受信任根证书列表
iOS 受信任证书存储区包含随 iOS 预安装的可信根证书. https://support.apple.com/zh-cn/HT205205 关于信任和证书 iOS 9 受信任证书存储区包含三类证 ...