【动态创建控件 Objective-C语言】

一、UIKit的坐标系

1.在UIKit中,坐标系的原点(0,0)在左上角,x值向右正向延伸,y值向下正向延伸

2.center,指的就是控件中心点的坐标

frame,指的就是控件左上角的坐标

在整个屏幕上,左上角,它是(0,0)

一个元素的frame的x和y,就是控件左上角的那1点

center的x和y,就是控件中心点的坐标

二、动态创建控件

1.刚才给大家讲的案例,控件是不是都是1个1个拽上来的

是不是有1个storyboard以后,然后通过我们这个控件库里面,在控件库里面,我们把每1个控件,都是1个1个拽上来的

那么,现在呢,我们不要一个一个拽上来了

我们完全自己写代码

把1个1个控件,给它动态去加上来

通过代码来实现,

2.我们先新建1个项目,看一下,这个控制器里面,是不是什么都没有吧

但是你一运行,看到什么了,看到一个按钮吧,这个按钮上有上一篇文章咱们创建的图片,

这个按钮中间,还有红色的“点我啊”三个字

本次的例子

这个按钮,点击时还有事件,是换了一张图片,上面有4个蓝色的字,“摸我干啥”

图片换成一个光头

那么,这个效果,就是动态创建控件,纯代码实现的

那么,通过代码,什么时候创建,怎么创建控件呢,

给大家介绍一下

三、纯代码方式动态创建控件

1.注意,我们给大家说,这个动态创建控件的时候,里面会介绍到一些其他的方法和属性,然后呢,你会需要记一下

因为后面可能都会用到

2.首先呢,新建1个项目,然后呢,选中我们的这个Main.storyboard

然后,我们在什么时候,去动态创建这个控件,加到这个屏幕上呢

我们启动项目的时候,首先,加载这个Main.storyboard文件

加载Main.storyboard文件,是不是要对应的加载1个控制器吧

这个控制器,我们看一下,这个控制器对应的类,是哪个类啊

是不是ViewContoller,是这个类型吧

所以说,它就会创建这个类的对象

创建好控制器以后,首先会把这个控制器里面,有1个什么啊

有1个叫做,

self.view,是不是这个控制器所管理的这个View啊

它会先创建好控制器所管理的这个View

然后,把控制器所管理的这个View,加载到我们的控制器里面

那么,然后,当控制器创建好这个View,当控制器所管理的这个View已经创建好以后,

接下来,我们再动态的创建自己的子控件,把它加到这个View里面

所以说,首先要等到控制器那个View创建好以后,然后,我们才开始创建自己的控件

那么在什么时候,控制器对应的那个View,就创建好了呢

就是在我们控制器里面,有1个方法或者叫事件,叫做viewDidLoad

-(void)viewDidLoad{

[super viewDidLoad];

}

这个方法,就是当控制器里面那个View创建并加载好以后,就开始执行这个方法

在这个方法当中,我们就需要开始创建自己的子控件了

//当要显示一个界面的时候,首先创建这个界面对应的控制器,

//控制器创建好以后,接着创建控制器所管理的那个view,

//当这个view加载完毕以后,就开始执行这个方法了

- (void)viewDidLoad{

[super viewDidLoad];

}

所以说,当这个方法被执行的时候,也就意味着,控制器所管理的那个View,是不是已经创建好了

//所以,只要viewDidLoad方法被执行了,就表示控制器所管理的view创建好了

那么,当这个view创建好以后,在这里

我们要动态的创建自己的按钮

- (void)viewDidLoad{

[super viewDidLoad];

//动态创建我们自己的按钮

}

2.通过使用代码的方式,来实现动态创建按钮的效果

也就是说,我们打开这个Main.storyboard这个文件,

看到控制器里面,是不是什么都没有啊

然后我们要动态给它创建,

这个要怎么实现呢

自己写代码,来创建按钮,应该写在什么地方呢

应该写在这个控制器的viewDidLoad方法里面

那么,这是一个什么方法呢

为什么动态创建按钮的方法,要写在这个方法里面呢

我们说,当我们要显示1个界面的时候,

首先,是不是要创建1个控制器吧,

当控制器创建好以后,它负责创建它所管理的那个view,

它所管理的那个view,是哪个view呢

我们说,这个viewDidLoad这个方法,是在什么时候执行啊

控制器创建好以后,控制器所管理的那个view也创建好以后,并且加载完毕以后,

是不是就会执行下面这个方法吧

- (void)viewDidLoad{

[super viewDidLoad];

}

也就是说,当这个方法执行的时候,也就意味着控制器,以及控制器所管理的那个view,已经创建好了

接下来,我们把动态创建按钮的代码,写在这个方法里面,就可以了

把自己创建的按钮加到这个view里面,就可以了

好,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风清晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值