ios随记

block

ios随记_第1张图片
而通过Block,就能够使用匿名函数,即不带函数名称的函数以下为例子
int (*funcptr)(int) = &func; int result = (*funcptr)(10);
、()、{}均属于block文档,是block的代表,关于block苹果官方的定义:block对象是C级别的语法和运行时特性。它们和标准C函数很相似,但除了可执行代码外,它们还可能包含了变量自动绑定或内存托管。一个block维护一个状态集(数据),它们可以在执行的时候用来影响程序行为。

h与m同时申明一个类。
在.h文件中声明的属性,外部类可以调用,但在.m中声明的外部类则不可以调用。

在.m文件中声明的成员变量,只有本类可以访问,在.h文件中声明的成员变量,本类和子类可以访问。

  • 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个层。

    • 在创建UIView对象时,UIView内部会自动创建一个层(即CALayer对象),通过UIView的layer属性可以访问这个层。当UIView需要显示到屏幕上时,会调用 drawRect:方法进行绘图,并且会将所有内容绘制在自己的层上,绘图完毕后,系统会将层拷贝到屏幕上,于是就完成了UIView的显示。

    • 换句话说,UIView本身不具备显示的功能,是它内部的层才有显示功能。
      二、UIView与CALayer的区别和联系

    • UIView是iOS系统中界面元素的基础,所有的界面元素都继承自它。它本身完全是由CoreAnimation来实现的(Mac下似乎不是这样)。它真正的绘图部分,是由一个叫CALayer(Core Animation Layer)的类来管理。UIView本身,更像是一个CALayer的管理器,访问它的跟绘图和跟坐标有关的属性,例如frame,bounds等等,实际上内部都是 在访问它所包含的CALayer的相关属性。

UIControlStateNormal = 0, 常规状态显现

UIControlStateHighlighted = 1 << 0, 高亮状态显现

UIControlStateDisabled = 1 << 1, 禁用的状态才会显现

UIControlStateSelected = 1 << 2, 选中状态

UIControlStateApplication = 0x00FF0000, 当应用程序标志时

UIControlStateReserved = 0xFF000000 为内部框架预留,可以不管他

这种block就是说如果有地方实现了,就不会空,没有地方实现就是空的
很多时候当作flag使用,写好函数体,比如销毁的时候就调用一下。
ios随记_第2张图片
ios随记_第3张图片
ios随记_第4张图片
ios随记_第5张图片
ios随记_第6张图片
ios随记_第7张图片





ios随记_第8张图片
ios随记_第9张图片
ios随记_第10张图片

property就是不用初始化了,像set与get方法,有了这个就可以点出来
ios随记_第11张图片
ios随记_第12张图片

ios随记_第13张图片
ios随记_第14张图片
ios随记_第15张图片

java中的私有和共有的关系
ios随记_第16张图片

使得子类也能被复制

ios随记_第17张图片

你可能感兴趣的:(笔记)