前言 本文是我学习了onevcat的 "这篇" 转场入门做的一点笔记。 今天我们来实现一个简单的自定义转场,我们先来看看这篇文章将要实现的一个效果图吧: 过程详解 热身准备 我们先创建一个工程,首先用storyboard快速的创建两个控制器,一个作为主控制器,叫 ,另外一个作为present出来的控 ...
分类:
其他好文 时间:
2018-04-26 00:58:34
阅读次数:
199
UIView是如何到显示的屏幕上的。 这件事要从RunLoop开始,RunLoop是一个60fps的回调,也就是说每16.7ms绘制一次屏幕,也就是我们需要在这个时间内完成view的缓冲区创建,view内容的绘制这些是CPU的工作;然后把缓冲区交给GPU渲染,这里包括了多个View的拼接(Compo ...
分类:
其他好文 时间:
2018-04-15 18:48:20
阅读次数:
154
前言 最近研究OpenGL ES相关和 GPU 相关 发现这篇文章很具有参考的入门价值. 理解 UIView 的绘制, UIView 是如何显示到 Screen 上的? 首先要从Runloop开始说,iOS 的MainRunloop 是一个60fps 的回调,也就是说16.7ms(毫秒)会绘制一次屏 ...
分类:
其他好文 时间:
2018-04-15 18:46:18
阅读次数:
245
// 递归获取子视图 - (void)getSub:(UIView *)view andLevel:(int)level { NSArray *subviews = [view subviews]; // 如果没有子视图就直接返回 if ([subviews count] == 0) return; ...
分类:
移动开发 时间:
2018-04-12 22:28:19
阅读次数:
441
添加滑动手势 //添加滑块 UIPanGestureRecognizer *recognizerA = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; [recognizerA se ...
分类:
移动开发 时间:
2018-04-11 17:03:50
阅读次数:
431
Vue所有的生命周期钩子自动绑定在this上下文到实例中,因此你可以访问数据,对属性和方法进行运算。这意味着你不能使用箭头函数来定义一个生命周期方法。这是因为箭头函数绑定了父上下文,因此this与你期待的Vue实例不同。 1、beforeCreate 在实例初始化之后,数据观测和event/watc ...
分类:
其他好文 时间:
2018-04-06 19:30:24
阅读次数:
168
Servlet概述 生命周期方法: l void init(ServletConfig):出生之后(1次); l void service(ServletRequest request, ServletResponse response):每次处理请求时都会被调用; l void destroy() ...
分类:
编程语言 时间:
2018-04-04 15:13:44
阅读次数:
175
1.通过分类的方式,对外暴露接口。 2.给分类添加属性,通过imageURLStorageKey值,将self 和 字典进行绑定。 通过sd_imageURLForState等方法进行取值。 3.调用UIView +WebCache 的sd_internalSetImageWithURL方法 ,设置 ...
分类:
Web程序 时间:
2018-03-30 21:58:05
阅读次数:
225
从UIView + webCache开始: 1. [self sd_cancelCurrentImageLoad]; 同一个imageview,请求避免请求多次。 每一个imageview 会有一个属性( operationDictionary),存放 SDWebImageOperation对象或者 ...
分类:
Web程序 时间:
2018-03-30 21:52:47
阅读次数:
185
前言: 学习ios开发有一段时间了,项目也做了两个了,今天看视频,突然发现view的frame和bound两个属性,发现bound怎么也想不明白,好像饶你了死胡同里,经过一番尝试和思考,终于弄明白bound的含义。PS:我承认我是一个很笨很笨的人。 所以现在记录下来,供以后查阅,同时方便所有和我一样 ...
分类:
移动开发 时间:
2018-03-30 21:37:15
阅读次数:
202