边总结边分析边(3篇)

山崖发表网工作总结2024-01-03 12:37:2430

边总结边分析边 第1篇

现在将注意力放回到viewDidLoad方法的下列代码中:

这里的leftMenuViewController等三个控制器都包含一个sideMenuViewController的成员,并让其指向self。那么是不是每一个视图控制器都要添加一个JCSideMenuViewController的属性呢?哇靠,太麻烦了吧。没错,如果让我来做的话,我只会这种方法。

但是原项目却给出了一个非常好的解决方案:在JCSideMenuViewController头文件中声明一个UIViewController的Category,并在类别中将JCSideMenuViewController和UIViewController动态关联起来。

首先要导入头文件:

SDK中关于objc_setAssociatedObject函数的定义如下:

第二个参数key表示二者关联的方式,在这里我们用@selector(sideMenuViewController)将其关联起来,该key用于获取被关联对象。

第三个参数表示要关联的对象,也就是sideMenuViewController。

第四个参数表示关联的策略,这里使用的是OBJC_ASSOCIATION_ASSIGN。

接下来是获取关联对象的函数,在sdk中定义如下:

边总结边分析边 第2篇

首先来看看JCSideMenuViewController的初始化过程,包括init方法和viewDidLoad方法。代码如下:

为了防止崩溃,在viewDidLoad方法中首先要判断这几个视图控制器是否为空。

在viewDidLoad方法中,我们做的就是将三个视图控制器的视图添加到JCSideMenuViewController的根视图上,而初始的MenuViewControllers的视图均设置为隐藏。

后面添加的两个轻扫手势swipeGesture的作用是关闭菜单。

边总结边分析边 第3篇

可以基于JCSideMenuViewController实现传统的侧边菜单形式。

下面给出我的做法:

首先定义kZoomScale = (如果想使用原来的菜单样式,只需要将下面的#if 0修改为#if 1)

实现效果如下:

当然,在菜单栏后面设置背景图片会占用一定的内存(iPhone真机调试13M左右),所以最好还是使用一些透明背景比较好,节省内存而又不影响美观。

最后还是附上源码,交流学习。

JCSideMenuViewControllerDemo下载地址:点此进入下载页

最后总结一下我从这个项目的源码分析中学习到的一些知识:

1.结构体初始化:

2.在项目中使用委托方法:

3.使用UIViewController Category关联类

这个是本次源码分析的最大收获,这确实是一个非常棒的设计模式,学习了。

4.仿射变换和animation方法

7的StatusBarStyle和屏幕旋转后的视图适配

和swipe手势

pan和swip手势在入门时用过,当时也是一知半解,并且早就忘得七七八八了,而且当时也没有写博客记录,幸好本次学习好好回顾了一下。

在UIPanGestureRecognzier类中:

其中translation记录了pan手势的平移轨迹,velocity记录了pan手势的速度。

7.translatesAutoresizingMaskIntoConstraints属性的作用是禁止将视图的AutoresizingMask转换成Autolayout。

NSENUM

接下来还会看更多的项目和类库,看了以后会继续更新博客。

显示全文

注:本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即后台留言通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意

点击下载文档

文档为doc格式

发表评论

评论列表(7人评论 , 39人围观)

点击下载
本文文档