这个类库的原理是,创建了一个容器类viewController:REFrostedViewController。类似于UINavigationController和UITabBarController。REFrostedViewController的头文件
几个主要要的方法:
@property (assign,readwrite, nonatomic)REFrostedViewControllerDirection direction;
@property (assign,readwrite, nonatomic)CGSize minimumMenuViewSize;
- (id)initWithContentViewController:(UIViewController *)contentViewController menuViewController:(UIViewController *)menuViewController;
- (void)presentMenuViewController;//动画显示侧边栏
- (void)hideMenuViewController;//动画隐藏侧边栏
初始化方法
- (id)initWithContentViewController:(UIViewController *)contentViewController menuViewController:(UIViewController *)menuViewController;
两个参数,contentViewController是背景视图的controller,menViewController就是要显示和隐藏的侧边栏的controller。创建的时候配置就行了。
- (void)presentMenuViewController;
- (void)hideMenuViewController;
以上两个方法是用来设置显示和隐藏侧边栏的。direction和minimumMenuViewSize分别用来设置侧边栏弹出时所在的方向和弹出时的大小。minimumMenuViewSize如果不设置,会显示默认的大小。
实现
第一步:配置一个REFrostedViewController。
//创建 配置frosted view controller
DemoHomeViewController *homeVC = [[DemoHomeViewController alloc] init];
DemoNavigationViewController *navigationC = [[DemoNavigationViewController alloc] initWithRootViewController:homeVC];
DemoMenuViewController * menuVC = [[DemoMenuViewController alloc] initWithStyle:UITableViewStylePlain];
REFrostedViewController * frostVC = [[REFrostedViewController alloc]initWithContentViewController:navigationC menuViewController:menuVC];
//将frostedViewController作为根控制器
self.window.rootViewController = frostVC;
第二部:在DemoHomeViewController里写一个方法
-(void)showMenu
{
//找到该controller的根frosteViewContrller,并展示侧边栏
[self.frostedViewController presentMenuViewController];
}