IOS开发第三方库JASidePanelController使用介绍


        JASidePanelController *jaSidePanelController = [[JASidePanelController alloc] init];

        SlideMenuViewController *slideMenuViewController = [[SlideMenuViewController alloc] init];

      //添加左边的viewcontroller

        jaSidePanelController.leftPanel = slideMenuViewController;

        TopMenuViewController* topMenuViewController = [[TopMenuViewController alloc]init];

        topMenuViewController.selectRowIndex = [SupportUserDefaults retrieveServiceMenuIndex];

        UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:topMenuViewController];

        [navigationController setNavigationBarHidden:NO];

        //添加中间的viewcontroller

        jaSidePanelController.centerPanel = navigationController;

        [jaSidePanelController setLeftFixedWidth:slideMenuViewController.slideMenuWidth];

        self.window.rootViewController = jaSidePanelController;


let viewController = JASidePanelController.init()
viewController.shouldDelegateAutorotateToVisiblePanel = false
viewController.leftPanel = LeftViewController()
viewController.rightPanel = rightViewController()
viewController.centerPanel = UINavigationController(rootViewController: MainViewController())
self.window?.rootViewController = viewController   
初始化一个JASidePanelController对象,设置左右Panel中心Panel,滑动即可,简直不能再简单了
//属性

UIViewController *leftPanel;   // optional左边栏
UIViewController *centerPanel; // required中心栏(必须设置)
UIViewController *rightPanel;  // optional右边栏
UIView *leftPanelContainer;   //左边栏的view
UIView *rightPanelContainer;  //右边栏的view
UIView *centerPanelContainer; //中心栏的view

viewController.shouldDelegateAutorotateToVisiblePanel //自动生成一个左右上方的按钮,点击可以打开左右侧页面
style //样式 
typedef enum _JASidePanelStyle {
   JASidePanelSingleActive = 0, //滑动后,在之前的界面反方向滑动,可以滑动回来
   JASidePanelMultipleActive //反之
} JASidePanelStyle;
pushesSidePanels //当设置为false的时候,在侧边栏出现后,向拖动侧边栏出现的方向,拖动中心页面,你会方向侧边栏跟着一起抖动;true反之
leftGapPercentag 、 rightGapPercentage //顾名思义,左右侧边栏占整个屏幕的百分比
leftFixedWidth 、 rightFixedWidth  //用数值直接设置左右侧边栏的大小
leftVisibleWidth 、 rightVisibleWidth //只读属性,可以查看左右栏所占大小

minimumMovePercentage //打开侧边栏时必须滑动的大小(屏幕大小的百分比)
maximumAnimationDuration //恢复中心页面时,最大耗时
bounceDuration //弹跳时间
bouncePercentage //弹跳距离(屏幕大小百分比)
bounceOnSidePanelOpen //中心页面弹跳,当开打侧边栏的时候,默认true
bounceOnSidePanelClose //中心页面弹跳,当关闭侧边栏的时候,默认false
bounceOnCenterPanelChange //改变中心页面的时候,中心页面弹跳,默认true
recognizesPanGesture //true支持手势,false只支持按钮打开侧边栏
panningLimitedToTopViewController //true 让手势只在UINavigationController/UITabBarController最上层有效,false反之

defaultImage //按钮默认图片
leftButtonForCenterPanel //中心页面左侧按钮
state //状态,并且用KVO控制的
typedef enum _JASidePanelState {
    JASidePanelCenterVisible = 1,
    JASidePanelLeftVisible,
    JASidePanelRightVisible
} JASidePanelState;
centerPanelHidden//当侧边栏出现的时候,是否隐藏中心页面,默认false,其实默认的效果才是侧边栏,不然还不如一个普通的Pages切换页面
visiblePanel //现在显示的界面
allowLeftSwipe、allowRightSwipe //是否允许左右滑动,默认true
allowRightOverpan、allowLeftOverpan //是否允许中心栏可以叠加到侧边栏不可以看到的区域上,默认true
canUnloadRightPanel、canUnloadLeftPanel //当左右栏页面不可以看到的时候,是否把Panel.view RemoveFormSuperView (为了节约内存么?哈哈我也不清楚,猜想是这样的)默认False
shouldResizeRightPanel、shouldResizeLeftPanel //到左右栏出现的时候,时候根据可视大小调整Panel.views的大小
//方法

// 显示panel的方法
- (void)showLeftPanelAnimated:(BOOL)animated;
- (void)showRightPanelAnimated:(BOOL)animated;
- (void)showCenterPanelAnimated:(BOOL)animated;
// 切换左右Panel的显示状态
- (void)toggleLeftPanel:(id)sender;
- (void)toggleRightPanel:(id)sender;
// 设置中心页面是否隐藏,以及不隐藏时,滑动的动画
- (void)setCenterPanelHidden:(BOOL)centerPanelHidden animated:(BOOL)animated duration:(NSTimeInterval) duration;
//默认设置阴影效果,即给centerPanel设置个layer.Shadow,可以修改这个方法,让其呈现扁平化的效果。我们所做的外包也是在这里直接修改了源码,让整个阴影消失的
- (void)styleContainer:(UIView *)container animate:(BOOL)animate duration:(NSTimeInterval)duration;
//设置某个Panel为圆角,其实现在用的更多的不是圆角了,所以可以在方法中注释掉圆角的设置,或者通过修改重写,来定制我们需要的显示效果
- (void)stylePanel:(UIView *)panel;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值