iOS侧滑功能三方开源库

ENSwiftSideMenu 从入门到放弃

三方库地址:https://github.com/Appolica/ENSwiftSideMenu

适用场景

大概看了下ENSwiftSideMenu的源码,作者写的代码还是挺简洁明了的。而且要实现的功能或者说要实现的效果也是很明确的。

实现的效果就是在一个导航栏下,同时显示两个页面,一个menuView,一个contentView。如图:

在这里插入图片描述

使用

使用起来也是很方便的,创建一个 ENSideMenuNavigationController 类型的导航栏控制器,向导航栏控制器中传入 menuViewController 和 contentViewController。

这是ENSideMenuNavigationController的初始化方法:

    public init( menuViewController: UIViewController, contentViewController: UIViewController?) {
        super.init(nibName: nil, bundle: nil)

        if (contentViewController != nil) {
            self.viewControllers = [contentViewController!]
        }

        sideMenu = ENSideMenu(sourceView: self.view, menuViewController: menuViewController, menuPosition:.left)
        view.bringSubviewToFront(navigationBar)
    }

其中 menuViewController 就是左侧/右侧的菜单页控制器,contentViewController就是主内容控制器。

其他的,打开/关闭菜单,滑动,设置菜单页的宽度,位置什么的都是可以的。

分析

优点还是挺明显的,使用简单,源码也好读,使用场景很明确。

缺点就是使用场景比较单一。

整体上还是感觉不太舒服,如果只是简单的实现开源库上展示的这种效果的话,搞得有点复杂了。gitHub上有一些用OC写的侧滑栏,抽屉效果的第三方库很好。

当然了这种分页类型的实现可能每个业务不同不能统一实现的,这个开源项目提供了实现思路,要实现其他什么样的效果可以自己改源码或者借鉴作者的自己实现都可以的。

MMDrawerController

三方库地址: https://github.com/mutualmobile/MMDrawerController

概述

这是一个用户OC写的侧滑效果的三方开源库。从实现思路上来看,个人感觉MMDrawerController要比ENSwiftSideMenu好。

使用

UIViewController * leftDrawer = [[UIViewController alloc] init];
UIViewController * center = [[UIViewController alloc] init];
UIViewController * rightDrawer = [[UIViewController alloc] init];

MMDrawerController * drawerController = [[MMDrawerController alloc]
                                  	   initWithCenterViewController:center
										   leftDrawerViewController:leftDrawer
										   rightDrawerViewController:rightDrawer];

在这里插入图片描述

分析

用了MMDrawerController之后我果断放弃了ENSwiftSideMenu。

SWRevealViewController

略…

TelerikUI.framework

国外有一个优秀的三方库,不过这个不太好找,有兴趣的可以研究一下,这个也很6的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Morris_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值