initWithFrame和initWithCoder的区别

如果使用了Interface Builder 方式或nib,就不会调用initWithFrame方法,因为nib文件知道怎么初始化了,

但可以使用initWithCoder这一个更深层的init方法来重新定义nib文件的各种属性

 

- (id)initWithCoder:(NSCoder*)coder

- (id)initWithFrame:(CGRect)frame

 

initWithFrame方法用来初始化并返回一个新的视图对象,根据指定的CGRect(尺寸)。

UIView *contentView = [[UIView alloc] initWithFrame:Back_Button_Frame];

#define Back_Button_Frame CGRectMake(-20, 0, 50, 35)

如果使用了编程方式,手动代码定义UIView类或其子类等,

如果在子类中加载initWithFrame方法,必须先调用父类的initWithFrame方法。

就用initWithFrame

 

你可能感兴趣的:(initWithFrame和initWithCoder的区别)