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){0,0};
    frame.size = (CGSize){40,40};
    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 0:
        {
            rootVC = [[FirstVC alloc] initWithNibName:@"FirstVC" bundle:nil];
        }
            break;
        case 1:
        {
            rootVC = [[SecondVC alloc] initWithNibName:@"SecondVC" bundle:nil];
        }
            break;
        case 2:
        {
            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

时间: 2024-10-29 11:11:06

iOS:制作左右侧滑(抽屉式)菜单的相关文章

【Android】史上最简单,一步集成侧滑(删除)菜单,高仿QQ、IOS

本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 转载请标明出处: http://blog.csdn.net/zxt0601/article/details/53157090 本文出自:[张旭童的博客](http://blog.csdn.net/zxt0601) 代码传送门:喜欢的话,随手点个star.多谢 https://github.com/mcxtzhang/SwipeDelMenuLayout 重要的话 开头说,not for the RecyclerView or L

史上最简单,一步集成侧滑(删除)菜单,高仿QQ、IOS。

重要的话 开头说,not for the RecyclerView or ListView, for the Any ViewGroup. 本控件不依赖任何父布局,不是针对 RecyclerView.ListView,而是任意的ViewGroup里的childView都可以使用侧滑(删除)菜单.支持任意ViewGroup.0耦合.史上最简单. 概述 本控件从撸出来在项目使用至今已经过去7个月,距离第一次将它push至github上,也已经2月+.(之前,我发表过一篇文章.传送门:http://b

【Android自定义ViewGroup】不一样的轮子,巧用类变量解决冲突,像IOS那样简单的使用侧滑删除,一个控件搞定Android item侧滑删除菜单。

================================================================================== [1 序言] 侧滑删除的轮子网上有很多,最初在github上看过一个,还是ListView时代,那是一个自定义ListView 实现侧滑删除的,当初就觉得这种做法不是最佳,万一我项目里又同时有自定义ListView的需求,会增加复杂度. 写这篇文章之前又通过毒度搜了一下,排名前几的CSDN文章,都是通过自定义ListVIew和Vie

quick-cocos2d-x学习笔记【6】——制作自定义效果按钮菜单

前面提到的是基本的菜单使用,还是很容易的,不过我们在商业产品中,经常看到的按钮都是非常好看,不光光是图片做得精美,而且动画效果也很棒.Candy Crash都玩过吧,看它们那个按钮,真的像果冻一样,效果确实很赞,所以我们也来做个,当然不是它那个效果,而且点击之后有一个抖动的效果.像这样, 好了,开始做个吧,我这个也是搬了一下coinflip中的按钮代码,算是学习一下. 创建一个views文件夹,里面创建一个MyButton.lua文件,这个就是我们的自定义按钮类了.实现的原理比较简单,在ui.n

纯div+css制作的弹出菜单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

巧用CSS3 :target 伪类制作Dropdown下拉菜单(无JS)

:target 是CSS3 中新增的一个伪类,用以匹配当前页面的URI中某个标志符的目标元素(比如说当前页面URL下添加#comment就会定位到id=“comment”的位置,俗称锚).CSS3 为这个动作赋予了更加多的功能——就如同:hover 一样你可以做一些样式定义. 先上效果图 正如标题所说,本文是教你如何巧用CSS3 :target 伪类制作Dropdown下拉菜单,原生HTML+CSS,无JavaScript.为了吸引各位往下看,先上实际例子,再进行剖析. Duang~ 实际例子其

自定义ListView,实现Item侧滑删除及侧滑出菜单效果

本程序是基于网上开源项目修改而来,具体来源忘了,懒得搜了,如果有不合适的地方,请原作者联系我,我会及时回复和处理的! 该例子程序中主要包含两个ListView,一个是实现侧滑删除,一个是侧滑出菜单,代码中的注释很全,我就不在赘述了,直接贴上核心代码和效果图,程序源码在最后,如果有不太明白的地方可以留言评论,我会及时回复,大牛勿喷啊! 侧滑删除ListView: package com.example.testslidelistview; import android.content.Contex

Axure制作app侧面抽屉菜单

在之前的文章中以手机淘宝app的筛选菜单为例,给大家介绍过使用axure制作app侧面滑动菜单的方法,本文继续为大家介绍另外一种app的菜单样式--抽屉菜单.手机qq.酷狗音乐等app都采取了这种抽屉菜单的设计. 先看效果~(因为51博客的缘故,貌似效果不是很好,但能看出来抽屉的推拉效果) 效果描述: 点击左上角头像,抽屉菜单拉出,再次点击头像,抽屉菜单关闭: 向右拖动页面,抽屉菜单拉出,向左拖动页面,抽屉菜单关闭. 我们先确定基本方向: 推拉效果,左右拖动(模拟手机上的滑动手势),我们首先想到

iOS抽屉效果和侧边菜单

iOS抽屉效果和侧边菜单 源码下载地址 1.效果演示 1. 抽屉效果演示 1. 侧边菜单演示 2.使用说明 构造方法 initialization /// 构造方法(左控制器 & 右控制器 & 背景图片) -(instancetype)initWithLeftController:(UIViewController *)leftController andMainController:(UIViewController *)mainController andRightController

iOS 制作view渐变的效果CAGradientLayer

有时候我们需要在view中加入渐变的效果来让它看起来有玻璃质感,可以使用Core Animation框架中提供的CAGradientLayer来实现. 代码如下:首先添加QuartzCore.framework然后加入如下代码: #import <QuartzCore/QuartzCore.h> - (CAGradientLayer *)shadowAsInverse { CAGradientLayer *newShadow = [[[CAGradientLayer alloc] init]