-
RACCommand实战 - ReactiveCocoa(四)
简介为什么要设计出来RACCommand?个人理解,是做了数据双向的处理,匹配数据加载和按钮点击场景。创建 RACCommandRACCommand的创建有两种形式:- (id)initWithSignalBlock:(RACSignal * (^)(id input))signalBlock; ①- (id)initWithEnabled:(RACSignal *)enabledSignal signalBlock:(RACSignal * (^)(id input))signalBl...…
-
详解FlattenMap和Map - ReactiveCocoa(三)
RWTableViewCell的flatternMap方法1、执行flattenMap,就会执行bind方法,并由bind方法返回新signal2、此时传入bind的闭包是对flattenMap闭包的转换(只对参数做转换,处理逻辑一致),此时,bind闭包和flattenMap闭包被保存,但不触发执行3、步骤1返回的新信号被订阅,block6被执行4、bind的闭包执行,得到block3,block3是RACStreamBindBlock类型。block3 = bindingBlock6、...…
-
ReactiveCocoa常用操作 - ReactiveCocoa(二)
详见ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(下)转换类1、map:对return返回的东西,升阶2、flatternMap:等于return返回的东西3、mapReplace:- (instancetype)mapReplace:(id)object { return [[self map:^(id _) { return object; }]];}组合1、concat:A和B组合成一个信号,A先逐个发完,再发B2、then...…
-
ReactiveCocoa源码分析 - ReactiveCocoa(一)
1、信号[RACSignal createSignal]; [RACDynamicSignal createSignal]; 这个方法作用:仅做了初始化功能,并保存闭包 创建RACDynamicSignal 保存didSubscribe闭包,但不触发。 格式化命名 [RACSignal subscribeNext]; [RACSubscriber subscribeNext]; 这个方法作用:保存三个闭包,创建...…
-
推荐ViewController Programming Guide翻译文章
ViewController Programming Guide笔记(一)ViewController Programming Guide笔记(二)ViewController Programming Guide笔记(三)ViewController Programming Guide笔记(四)ViewController Programming Guide笔记(五)ViewController Programming Guide笔记(六)…
-
UISplitViewController
UISplitViewController类是提供了一个主 - 从界面的容器视图控制器。在主 - 从界面中,主视图控制器的更改驱动从视图控制器(详细信息)进行更改。两个视图控制器可以被布置为三种情况:并排,每次只有一个是可见的,或者一个部分被覆盖,一个显示。在iOS中8及更高版本,可以在所有iOS设备使用UISplitViewController; 在iOS的以前版本中,该类仅在iPad上可用。概述在构建应用程序的用户界面时,分屏视图控制器通常是应用程序窗口的根视图控制器。分屏视图控制器没...…
-
Gesture Recognizers
Gesture Recognizers手势识别把低层次的事件处理代码,转换为高层次的action。 它们是你连接到视图的各种对象,它们允许视图像控件一样响应各种操作。 手势识别转化各种触摸,来决定它们是否响应一个特定的手势,比如一个点击(swipe), 捏合(pinch),或旋转。 如果它们识别到指定的手势,就给目标对象发送一个action信息。 目标对象通常是视图的视图控制器,它响应图1-1中所示的手势。该设计模式既有力又简单;你可以动态地决定视图响应什么操作,你也可以给视图添加各种手势...…
-
Event Delivery The Responder Chain
当你设计应用时,你可能希望动态地响应事件。例如,触摸可能发生在屏幕上的很多不同对象上,你必须决定你希望哪一个对象来响应给定的事件,理解对象是如何接收事件的。当用户产生的事件发生时,UIKit创建一个封装了所有需要处理该事件信息的事件对象。然后将该事件对象放在 active app’s (Application object)事件队列中。对于触摸事件来说,该对象是封装在 UIEvent 对象中的一组touch。对于运动事件来说,事件对象不一样,取决于你使用哪种框架,以及哪种类型的运动事件。一...…
-
Hit-testing in iOS
Hit-testing是一个确定point(如触摸点)是否在绘制在屏幕上的既定图形对象(如UIView)的过程。IOS使用Hit-testing,以确定哪些UIView是用户的手指下最顶层的视图,即应该接收触摸事件。通过使用前序深度优先遍历算法搜索视图层次,来实现Hit-testing。在解释Hit-testing的工作原理之前,重要的是要了解何时执行Hit-testing。下图说明了单次触摸的流程,从手指触摸屏幕直到手指离开屏幕为止:如上图所示,每当手指触摸屏幕时都会执行Hit-test...…
-
View Controller Catalog for iOS(四)-Split View Controllers
分屏控制器UISplitViewController类是管理两个窗格信息的容器视图控制器。第一个窗格具有320点的固定宽度,以及与visible window相等的高度。第二个窗格填充剩余的空间。 图4-1显示了一个分屏控制器界面。图4-1 分屏视图界面split view界面的窗格包含视图控制器管理的内容。由于该窗格包含应用程序的具体内容,所以由你来管理这两个视图控制器之间的相互作用。然而,旋转和其它系统相关的行为由split view controller本身管理。split vi...…