侧边栏的实现----网易新闻的侧边栏效果

来源:互联网 发布:数据库系统概论第5版11 编辑:程序博客网 时间:2024/06/02 23:43

在最近的项目里面要实现侧边栏的效果,基于时间紧迫自己代码封装实现侧边栏的时间不允许,所以使用了现有的第三方框架的代码实现,现主要列举两个实现的效果

现在自己的项目里面导入第三方框架文件DDMenuController  MMDrawerController

下面是具体的实现效果

1、DDMenuController

Appdelegate.h里面定义变量的属性

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@property (retain, nonatomic) DDMenuController *ddmenuVC;

@property (retain, nonatomic) MainTabBarController *mainTBC;

@property (retain,nonatomic) LoginTabBarViewController *LoginTBC;

@end


在Appdelegate.m里面写入下面的代码

self.mainTBC = [[[MainTabBarController alloc]initWithNibName:nil bundle:nil] autorelease];

    LoginViewController *LoginVC = [[LoginViewController alloc]initWithNibName:@"LoginViewController" bundle:nil];

   //初始化DDMenu,并设置2VC

     self.ddmenuVC = [[DDMenuControlle alloc]initWithRootViewController:self.mainTBC];

     self.ddmenuVC.leftViewController = LoginVC;

     self.window.rootViewController = self.ddmenuVC;

这样即可用DDMenuControlle实现侧边栏滑动实现的效果,但是DDMenuControlle可以实现左侧菜单的滑动展开,不能实现滑动隐藏,隐藏是点击按钮以及点击界面实现,所以很多人实现的时候会对这一效果很不满意。所以下面介绍另外一种实现侧边的效果,可以实现滑动展开以及滑动隐藏。

2、MMDrawerController

   Appdelegate.h里面定义变量的属性

@interface AppDelegate : UIResponder <UIApplicationDelegate>


@property (strong, nonatomic) UIWindow *window;

@property (nonatomic,retain) MMDrawerController *mmMenuVC;

@property (retain, nonatomic) MainTabBarController *mainTBC;

@property (retain, nonatomic) LoginTabBarViewController *LoginTBC;


在Appdelegate.m里面写入下面的代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    self.window.backgroundColor = [UIColor whiteColor];

    [self.window makeKeyAndVisible];

    

    self.mainTBC = [[[MainTabBarController alloc] initWithNibName:nil bundle:nil]autorelease];

   leftVC = [[LeftViewController alloc] initWithNibName:@"LeftViewController" bundle:nil];

    mmMenuVC = [[MMDrawerController alloc] initWithCenterViewController:self.mainTBC leftDrawerViewController:leftVC];

    self.window.rootViewController = self.mmMenuVC;

    [mmMenuVC setMaximumLeftDrawerWidth:kPublicLeftMenuWidth];

    [mmMenuVC setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];

    [mmMenuVC setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];

    [mmMenuVC setDrawerVisualStateBlock:^(MMDrawerController *drawerController, MMDrawerSide drawerSide, CGFloat percentVisible) {

        MMDrawerControllerDrawerVisualStateBlock block;

        block = [MMDrawerVisualState parallaxVisualStateBlockWithParallaxFactor:2.0];

        block(drawerController, drawerSide, percentVisible);

    }];

    return YES;

}

MMDrawerController实现的功能比较强大,可以实现滑动实现菜单的效果。





0 0
原创粉丝点击