代码初始化 故事板初始化 xib初始化总结

对象的初始化有三种方式

// 代码创建
- (id)initWithFrame:(CGRect)frame {

if (self = [super initWithFrame:frame]) {
       
       
        self.backgroundColor = [UIColor clearColor];
        [self creatKits];//加载子控件
    }

return self;
}

//通过Xib加载初始化文件(创建xib文件的只是一个视图,没有控制器,把xib文件和视图相关联)

_headerView = [[[NSBundle mainBundle] loadNibNamed:@"HomeHeaderView" owner:nil options:nil] lastObject];

//通过xib文件加载
- (void)awakeFromNib {

[super awakeFromNib];
   
    self.backgroundColor = [UIColor clearColor];
    [self creatKits];

}

//注意当创建了xib 文件但是不通过沙盒路径去读取,而是用xib视图上的某些控件可以直接用拖拽即可(这种情况只有视图控制器控制器可以,如果是视图类不拖拽是不行的);

//UIStoryboard初始化的(创建的故事版是一个控制器 UIStoryboard)

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"ImageNewsStoryboard" bundle:[NSBundle mainBundle]];
       
        ImageNewsViewController *vc = [sb instantiateInitialViewController];

[self.viewController.navigationController pushViewController:vc animated:YES];

// 通过storyBoard创建
- (id)initWithCoder:(NSCoder *)aDecoder {

if (self = [super initWithCoder:aDecoder]) {
       
        self.backgroundColor = [UIColor clearColor];
        [self creatKits];
    }

return self;

}

//注意是事项:

通过Xib加载初始化的同时会走以其相关联的class类初始化复写xib初始化的方法就在相关联的类中

通过Storyboard加载初始化的同时会走以其相关联的class类初始化复写Storyboard初始化的方法就在相关联的类中

时间: 2024-10-08 15:26:37

代码初始化 故事板初始化 xib初始化总结的相关文章

iOS基础 02 StoryBoard 故事板文件

iOS基础 02 StoryBoard 故事板文件 目录: 1. 故事板的导航特点 2. 故事板中的Scene和Segue 3. 本文最后 在上篇HelloWorld工程中有一个Main.storyboard文件,它被称为“故事板”(storyboard)文件. 它可以描述应用中有哪些界面,界面有哪些控件以及它们的事件. 此外,故事板还能描述界面之间是如何导航的. 1. 故事板的导航特点 在包含多个视图控制器的情况下,采用故事板管理比较方便,而且故事板还可以描述界面之间的导航关系. 下面我们举例

从xib初始化的UIView如何继承?

一.如何从xib自定义一个CustomView 1)首先创建继承自UIView的子类CustomView 2)创建名字为CustomView的View的Interface文件 3)在xib的资源文件中修改class为CustomView 4)编辑xib,拖拽控件 代码如下: @property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activity; xib 如下 注意class类型 5)使用这个自定义的view - (void)

Sonar6.0应用之三:集成Eclipse实时代码质量分析(附Eclipse初始化)

Sonar通过插件的形式与Eclipse集成,可以实现实时代码质量分析,前提条件是sonar服务器已经正常工作. 一.启动eclipse,下载并安装sonar插件 安装完成插件后重启eclipse,再次打开后对需要代码质量检查的项目右击 配置sonar服务器的地址.登陆名.密码等. 可以搜索到已经在sonar服务器上构建好的项目名称加入 二.配置eclipse中的命令窗口,便于实时代码质量检查. 找到SonarLint,复选它的三个组件 可以开始对源代码的质量进行分析了 错误说明 -------

iOS故事板下使用代码跳转页面

如今iOS8下,使用Storyboards开发十分方便,搭配上Size Class后,并且适配更加便捷. 但是突然由代码写界面或者xib转向故事板,难免有一些疑惑. 由于故事板下,基本使用连续来跳转页面,但有些情况下总会用到代码控制页面跳转,这个时候传统的初始化ViewController后push过去会出现一个黑色屏幕,什么内容都没用. 解决方案: UIStoryboard *story = [UIStoryboard storyboardWithName:@"填写故事板名称" bu

IOS开发系列--TableView、多个TableViewCell、自定义Cell、Cell上画画(故事板+代码方式),ios7tableview索引

在此之前,我们已经创建了一个通过简单的表视图应用程序并显示预定义的图像.在本教程中,我们将继续努力,使应用程序变得更好,: >不同的行显示不同的图像 - 上个教程,我们的所有行显示相同的缩略图.那么不同的食物显示不同的图片不是更好么? >自定义视图单元-我们将展示我们自己的视图来替代默认表单元格样式 显示不同缩略图 在我们更改代码之前,让我们回顾显示缩略图的代码. 最后,我们增加了一个行代码指示UITableView每一行显示"creme_brelee.jpg"这张图片.显

对象初始化器与集合初初始化器

对象初始化器的结果: 对象初始化器的优点: 1.只需要一条语句就可以完成对象初始化工作. 2.无需为简单对象提供构造函数. 3.无需为初始化不同属性而为类提供多个构造函数. 集合初始化的优点: 1.集合初始化已声明的方式初始化集合,具有更好的代码可读性.

OC3-完全形态的初始化,初始化方法;;遍历初始化

理解继承,掌握他的属性和方法的使用还有关系::完全形态的初始化,初始化方法::遍历初始化, 1.oc里面继承的特点:(1)继承中上一层时父类,下一层是子类,父类和子类时相对的.(2)所有的类是最根本的父类是NSObject:类的始祖(3)继承具有传递性(4)核心:子类能继承父类全部(private除外)特征和行为. 2.继承:(1)增强代码的复用性,减少代码的开发时间,实现的代码的层级分离, 3.继承的使用,(1)在interface后面  类名:父类名  继承实现. 注意:(1)oc中是单继承

Java类的初始化顺序 (静态变量、静态初始化块、变量、初始化块、构造器)(转)

大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出到控制台的代码,然后让我们判断输出的结果.这实际上是在考查我们对于继承情况下类的初始化顺序的了解. 我们大家都知道,对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序以此是(静态变量.静态初始化块)>(变量.初始化块)>构造器.我们也可以通过下面的测试代码来验证这一点: Java代码 p

JavaSE8基础 子类初始化时有 父子类分层初始化的特点

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0) 代码: /* A:一个类的初始化过程 成员变量的初始化 默认初始化 显示初始化 构造方法初始化 B:子父类的初始化(分层初始化) 先进行父类初始化,然后进行子类初始化. */ class Test { public Test() { System.out.println("Test类初始化"); } } class Fa