JHSidebar 0.1.3

JHSidebar 0.1.3

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
Released最新版本2014年12月

Josh Holtz维护。



JHSidebar 0.1.3

  • Josh Holtz

这可能只是一个侧边栏库,但这正是我希望实现的方式。

特性

  • 通过Storyboard场景或古老的code使用(以下为示例)
  • 配置侧边栏以覆盖主视图或与主视图滑动
  • 配置侧边栏的宽度
  • 配置侧边栏打开和关闭动画时间
  • 启用滑动手势以打开和关闭侧边栏
  • 启用点击手势以关闭侧边栏
  • 可选的代理,用于监听侧边栏的打开或关闭
  • 通过导入#import <JHSidebar/JHSidebarViewController.h>从任何UIViewController访问JHSidebarViewController

安装

内置类

克隆存储库,并将"Classes"目录中的.h和.m文件放入您的项目中。

示例

打开/关闭/切换

- (void)onClickLeft:(id)sender {
    // Open left sidebar
    [self.sidebarViewController showLeftSidebar:YES];

    // Close left sidebar
    [self.sidebarViewController showLeftSidebar:NO];

    // Toggle left sidebar
    [self.sidebarViewController toggleLeftSidebar];
}

- (void)onClickRight:(id)sender {
    // Open right sidebar
    [self.sidebarViewController showRightSidebar:YES];

    // Close right sidebar
    [self.sidebarViewController showRightSidebar:NO];

    // Toggle right sidebar
    [self.sidebarViewController toggleRightSidebar];
}

设置 - Storyboard

主视图、左侧边栏和右侧边栏可以通过以下默认标识符命名场景来设置。

  • JHMainView
  • JHLeftSidebar
  • JHRightSidebar

这些是用于从Storyboard实例化这些视图控制器的默认标识符。如果您想覆盖它们或不需要,可以覆盖以下方法。

    - (UIViewController *)instantiateMainViewController; // override
    - (UIViewController *)instantiateLeftViewController; // override
    - (UIViewController *)instantiateRightViewController; // override

要么返回一个视图控制器,要么返回null。

设置 - 真正的老式代码

如果您不希望走Storyboard的路线,您可以直接在代码中初始化JHSidebarViewController,通过设置主视图控制器以及左侧和右侧侧边栏视图控制器。

AppDelegate.h

#import <UIKit/UIKit.h>

@class JHSidebarViewController;

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (nonatomic, strong) UIWindow *window;
@property (nonatomic, strong) JHSidebarViewController *sidebarViewController;

@end

AppDelegate.m

#import "AppDelegate.h"

#import "ViewController.h"
#import "LeftViewController.h"
#import "RightViewController.h"

#import <JHSidebar/JHSidebarViewController.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    [self.window makeKeyAndVisible];

    // Initializes JHSidebarViewController
    self.sidebarViewController = [[JHSidebarViewController alloc] init];
    [self.sidebarViewController enableTapGesture]; // Enables tap on open sidebar to close
    [self.sidebarViewController enablePanGesture]; // Enables panning to open and close sidebars
    [self.sidebarViewController setSlideMainViewWithLeftSidebar:YES]; // Main view will slide with side bar instead of left side bar overlapping main view
    [self.sidebarViewController setRightSidebarWidth:220.0f]; // Sets width of right sidebar

    // Sets "main view"
    ViewController *viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:[NSBundle mainBundle]];
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
    self.sidebarViewController.mainViewController = navController;

    // Sets "left sidebar"
    self.sidebarViewController.leftViewController = [[LeftViewController alloc] initWithNibName:@"LeftViewController" bundle:[NSBundle mainBundle]];

    // Sets "right sidebar"
    self.sidebarViewController.rightViewController = [[RightViewController alloc] initWithNibName:@"RightViewController" bundle:[NSBundle mainBundle]];

    self.window.rootViewController = self.sidebarViewController;

    return YES;
}

@end

作者

Josh Holtz,[email protected]@joshdholtz

许可证

JHSidebar 可在 MIT 许可下使用。有关更多信息,请参阅 LICENSE 文件。