美文网首页GXiOS
iOS开发--控件初始化

iOS开发--控件初始化

作者: Caesar_62dd | 来源:发表于2019-05-05 18:51 被阅读12次

一个控件有2种创建方式:

1.通过代码创建,初始化时一定会调用initWithFrame:方法

2.通过xib\storyboard创建,

初始化时不会调用initWithFrame:方法,只会调用initWithCoder:方法,初始化完毕后会调用awakeFromNib方法有时候希望在控件初始化时做一些初始化操作,比如添加子控件、设置基本属性.这时需要根据控件的创建方式,来选择在initWithFrame:、initWithCoder:、awakeFromNib的哪个方法中操作

Xib和storyboard对比

共同点:

都用来描述软件界面
都用Interface Builder工具来编辑
本质都是转换成代码去创建控件

不同点:

Xib是轻量级的,用来描述局部的UI界面
Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系

Xib的加载

方法1

NSArray *views = [[[NSBundle mainBundle] loadNibNamed:@"xib文件名" owner:nil options:nil] firstObject];

方法2

UINib *nib = [UINib nibWithNibName:@"xib文件名" bundle:nil];
NSArray *views = [nib instantiateWithOwner:nil options:nil];

懒加载

接下来通过代码来解析Plist文件中的数据
获得Plist文件的全路径

NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:@"shops" ofType:@"plist"];
_shops = [NSArray arrayWithContentsOfFile:path];

Plist文件

直接将数据直接写在代码里面,不是一种合理的做法。如果数据经常改,就要经常翻开对应的代码进行修改,造成代码扩展性低
因此,可以考虑将经常变的数据放在文件中进行存储,程序启动后从文件中读取最新的数据。如果要变动数据,直接修改数据文件即可,不用修改代码
一般可以使用属性列表文件存储NSArray或者NSDictionary之类的数据,这种“属性列表文件”的扩展名是plist,因此也称为“plist文件”

instancetype类型与id类型

instancetype在类型表示上,跟id一样,可以表示任何对象类型

区别:

1. instancetype只能用在返回值类型上,不能像id一样用在参数类型上
2.instancetype比id多一个好处:编译器会检测instancetype的真实类型

封装控件的基本步骤:

    1. 在initWithFrame:方法中添加子控件,提供便利构造方法
    1. 在layoutSubviews方法中设置子控件的frame,必须调用[super layoutSubviews];
    1. 增加模型属性,在模型属性set方法中设置数据到子控件上

相关文章

  • IOS UITableView

    UITableView表格式图,IOS开发中使用非常广泛的一个控件,继承自UIScrollView。 一:初始化 ...

  • iOS开发--控件初始化

    一个控件有2种创建方式: 1.通过代码创建,初始化时一定会调用initWithFrame:方法 2.通过xib\s...

  • UILabel的使用

    UILabel是iOS开发中最常用最基础的控件之一,其父类为UIView。 1、常用属性 // 初始化 UILab...

  • iOS开发之控件封装(又名拧螺丝):排序按钮

    iOS开发之控件封装(又名拧螺丝):排序按钮 iOS开发之控件封装(又名拧螺丝):排序按钮

  • UISlider

    UIslider滑块控件在IOS开发中会常用到,可用于调节音量,字体大小等UI方面的交互, 用法总结如下: 初始化...

  • Mac 开发之导航控制器、窗口视图切换

    缘由:Mac 开发控件是继承自 AppKit (相当古老,个人觉得相较于iOS端极其不方便)iOS 开发控件是...

  • IOS 开发笔记 2018-03-20

    一 IOS 系统控件 UILabel 文本标签 初始化::UILabel * label = [[UILabel ...

  • UIslider滑块控件

    UIslider滑块控件在IOS开发中会常用到,可用于调节音量,字体大小等UI方面的交互,用法总结如下: 初始化一...

  • UISlider的使用

    UIslider滑块控件在IOS开发中会常用到,可用于调节音量,字体大小等UI方面的交互,用法总结如下: 初始化一...

  • UIAlertController 封装(block 一行代码回

    iOS 开发中,最常用的一个控件就是 弹窗提醒控件。iOS8之后,UIAlertController 的 bloc...

网友评论

    本文标题:iOS开发--控件初始化

    本文链接:https://www.haomeiwen.com/subject/szahoqtx.html