随笔-汇总

1. 你给我解析清楚,都有了CALayer了,为什么还要UIView??

分层设计,各司其职,策略和机制分离,calayer 只负责绘图,其他不干,UIView 处理交互,变动较快。

2.ios 中的 “位移枚举” :

先看c 语言的枚举>

typedef enum{  
    DirectionTypeUp,  
    DirectionTypeLeft,  
    DirectionTypeDown,  
    DirectionTypeRight  
} DirectionType; 

ios 的枚举:

typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {  
    UIViewAnimationTransitionNone,//默认从0开始  
    UIViewAnimationTransitionFlipFromLeft,  
    UIViewAnimationTransitionFlipFromRight,  
    UIViewAnimationTransitionCurlUp,  
    UIViewAnimationTransitionCurlDown,  
};  
  
typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {  
    UIViewAutoresizingNone                 = 0,  
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,    //表示1    :1左移0位
    UIViewAutoresizingFlexibleWidth        = 1 << 1,       // 表示2  :1左移1位
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,  // 表示4
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,  // 表示8
    UIViewAutoresizingFlexibleHeight       = 1 << 4,      //表示16
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5   //表示32 
}; 

从c语言开始沿用过来的枚举,保留至今。iOS6和Mac OS 10.8以后引入了两个宏NS_OPTIONS 和NS_ENUM来定义枚举类型,本质上这个两个宏没有区别,只是从字面上区分用途。
NS_OPTIONS :用来定义 位移枚举
NS_ENUM: 用来定义 普通枚举

3. 一个名词:方法签名

方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。
注意,方法签名不包括方法的返回类型。不包括返回值和访问修饰符

注意:重载和重写。重写要求方法签名必须相同,返回值类型也相同,重载只要求方法签名相同;重写是覆盖,最终还是一个方法,调用的是子类的方法,重载是方法的扩展,是多个方法;@override 关键字可以让编译器自动检查是否重载的正确

4.@dynamic关键字和@synthesize关键字是用来做什么的

@synthesize 声明编译器需要自动合成属性的存取方法
该关键字产生了两个影响,自动生成一个下划线开头的实例变量,另外自动生成了存取方法
@dynamic 用来标明不需要在编译期去关心存取方法是否存在,而后会提供

xcode 在迭代过程中已经默认合成了存取方法,@synthesize 不需要手动添加
另外一个文章可以帮助理解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容