一个类继承UIView,调用init方法,为什么这个init方法会去调用我重写的initWithFrame方法?

一个类继承UIView,调用init方法,为什么这个init方法会去调用我重写的initWithFrame方法?这是因为init方法默认就是调用这个方法吗?

QTDetailsFooterView *footerView = [[QTDetailsFooterView alloc]init];

  • (instancetype)initWithFrame:(CGRect)frame;

阅读 9.2k
1 个回答

用纯代码创建的view在init的时候都会调用initWithFrame。即使用init方法初始化也会调用initWithFrame,只是frame参数是CGRectZero。用xib和storyboard创建的view初始化的时候调用inirWithCoder。原理和上面一样。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏