init.initWithFrame和initWithCoder的区别 1.Xib方式自定义UIView(指任意的UI控件) 使用Xib文件,就是我们所常用的“拖控件”的方式.如果我们使用了该方法创建了UIView(所有控件),那么initWithFrame方法是不会被调用的,因为nib文件已经定义好了view的长.宽.背景以及其他的一些属性.那么我们要想重写nib中的各项属性,就要在initWithCoder这个方法里面进行了. 2.纯代码的方式自定义UIView(指任意的UI控件) 用纯代码…
如果使用了Interface Builder 方式或nib,就不会调用initWithFrame方法,因为nib文件知道怎么初始化了, 但可以使用initWithCoder这一个更深层的init方法来重新定义nib文件的各种属性 - (id)initWithCoder:(NSCoder*)coder - (id)initWithFrame:(CGRect)frame initWithFrame方法用来初始化并返回一个新的视图对象,根据指定的CGRect(尺寸). UIView *contentV…
当我们需要自定义一个View控件时,会有 initWithFrame.initWithCoder.awakeFromNib 这三个系统方法,关于这三个方法何时调用,如何调用,有时候可能很多人会弄混淆. 下面我会就理论结合代码举例来说明一下: 1.initWithFrame - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { NSLog(@"initWithFra…
什么是CS和BS结构,两种结构的区别 什么是C/S和B/S结构?         C/S又称Client/Server或客户/服务器模式.服务器通常采用高性能的PC.工作站或小型机,并采用大型数据库系统,如Oracle.Sybase.Informix或 SQL Server.客户端需要安装专用的客户端软件. B/S 是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle.…
当我们创建或者自定义一个UI控件时,就很可能会调用awakeFromNib.initWithCoder .initWithFrame这些方法.三者的具体区别如下: initWithFrame: 通过代码创建UI控件的时候就会调用: initWithCoder:从文件中解析一个对象的时候就会调用这个方法,也就是说无论是通过代码还是xib,程序运行的时候都会调用这个方法: awakeFromNib:当一个对象从xib或者storyboard中加载完毕后,就会调用一次. 比如:当苹果官方提供的按钮不能…
1.先把OC的类分清楚各有什么方法 普通类的方法 init initialize: 控制器类的方法 init initialize: initWithCoder: UI控件类的方法 init initialize: initWithCoder: initWithFrame: 2.init方法 每个类被创建的时候就会调用init方法 Person *p1 = [[Person alloc]init];Person *p2 = [[Person alloc]init];Person *p3 = [[…
//当我们所写的程序里没用用Nib文件(XIB)时,用代码控制视图内容,需要调用initWithFrame去初始化 - (id)initWithFrame:(CGRect)frame { if (self =[superinitWithFrame:frame]) { // 初始化代码 } return self; } 用于视图加载nib文件,从nib中加载对象实例时,使用 initWithCoder初始化这些实例对象 - (id)initWithCoder:(NSCoder*)coder { i…
//当我们所写的程序里没用用Nib文件(XIB)时,用代码控制视图内容,需要调用initWithFrame去初始化 - (id)initWithFrame:(CGRect)frame { if (self =[superinitWithFrame:frame]) { // 初始化代码 } return self; } 用于视图加载nib文件,从nib中加载对象实例时,使用 initWithCoder初始化这些实例对象 - (id)initWithCoder:(NSCoder*)coder { i…
当我们所写的程序里没用用Nib文件(XIB)时,用代码控制视图内容,需要调用initWithFrame去初始化 - (id)initWithFrame:(CGRect)frame{ if (self =[superinitWithFrame:frame]) { // 初始化代码 } return self; } 用于视图加载nib文件,从nib中加载对象实例时,使用 initWithCoder初始化这些实例对象 - (id)initWithCoder:(NSCoder*)coder{ if (s…
当我们所写的程序里用代码创建控制视图内容,需要调用initWithFrame去初始化 - (id)initWithFrame:(CGRect)frame { if (self =[superinitWithFrame:frame]) { // 初始化代码 } return self; } 当用nib文件视图时,使用 initWithCoder初始化这些实例对象 - (id)initWithCoder:(NSCoder*)coder { if (self =[superinitWithcoder:…