【UI进阶】关于IB的理解,不知道这样是否可以

main.storyboard里面通过拖动创建的所有控件都是一个对象,这些对象都有对应的类,比如按钮的类是UIButton,视图View的类是UIView。我们把我们拖动的控件(比如视图)绑定到我们自定的类,则这个控件对象就是由我们自定义的类创建的对象,如果不指定类,那么就是系统默认的类。


同理,storyboard对应一个类,创建项目的时候,系统把main.storyboard控制器对象指定为ViewController类的实例,当然我们也可以定义其他控制器指向main.stroyboard。这样main.storyboard就是我们指定控制器的对象

 

每一个控制器都有一个自己的view视图,其他控件添加到该视图之上,控制器可以通过[self.viewviewWithTag:]来获取指定tag的控件,或者给控件托线到控制器当中,这样控制器就有一个成员属性,及该控件(同样可以这样理解,控制器定义的成员属性,控件类型是weak,在代码当中并没有赋值,当时通过托线的方式指向了一个控件,这样就有了值。也同样说明了stroyboard中控件都是对象,只是控制器没有指针只指向。只是间接拥有)

 

main.storyboard的理解

1main.storyboard中的结构大致是这个样子


目前我们学过的有SZViewController,MyView,MyLabel,MyButton,MyTextField(视图上的名字),这些在storyboard中可以看见的都是对象

2、比如SZViewController这个对象,他是通过ViewController这个类创建的(项目创建的时候指定该类,本人比较懒,没有建一个属于自己的控制器)。为什么说是通过该类创建的呢,因为我们指定了该类,如果不指定,默认是UIViewController。


 

3、程序启动的时候会根据info.plist文件找到Main.storyboard,程序加载storyboard的过程是如何实现的呢

 加载main.storyboard底层做什么事情

 1.创建UIWindow对象

 2.加载storyboard,创建storyboard中的控制器

 3.把新创建的控制器作为窗口的根控制器,让窗口显示在屏幕上

 注意:窗口要显示出来,必须保证设置尺寸,避免销毁

窗口的显示makeKeyAndVisible

 

4、每一个控制器拥有一个自己的视图,因为UIWindow仅仅提供的是绘画支持,而UIView才是提供绘画的画板
而且控制器自己的视图是强引用

@property(nonatomic,retain)UIView *view; 

图中的MyView也是一个对象,是属于SZViewController

 

5MyView对空间MyLabel,MyButton,MyTextField是强引用(类似代码当中的addSubView),所以我们在托线的时候就不需要在对这些对象强引用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值