UILabel
常用属性:
![](https://i-blog.csdnimg.cn/blog_migrate/37b4e417a483c278f0bd25769989ba3e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9a7b5950fb29a2ab8a7b9b7a4b7c5dea.png)
UITextField
常用属性:
![](https://i-blog.csdnimg.cn/blog_migrate/9c4785866f9da0043a203688b3de0e4e.png)
输入控制属性:
![](https://i-blog.csdnimg.cn/blog_migrate/9d70c2de1a4a5e99b9b50d15e45f2050.png)
外观控制属性:
![](https://i-blog.csdnimg.cn/blog_migrate/1a3e2876cddd65b5b0daec299c0d2636.png)
输入框让键盘回收的方法:
1、通过协议
(1)让AppDelegate成为输入框的代理对象 ,让TA去执行事件(AppDelegate接受输入框的协议)
(2)接受了协议就要执行键盘回收的方法
![](https://i-blog.csdnimg.cn/blog_migrate/7377068b64c5494d9293a64edee569bb.png)
(3)建立关系:
如:textField.delegate = self;(self指AppDelegate)
2、通过Tag值
(1)创建一个按钮添加触发事件,让Tag值的键盘回收
(2)按钮触发的事件方法如:通过Tag值返回的是View,要强制转换为UITextField类型的
![](https://i-blog.csdnimg.cn/blog_migrate/89e519631a830c24897bc8950748f135.png)
3、设置属性
(1)只需要把输入框设置成为属性
(2)创建一个按钮添加触发事件,回收键盘
(3)按钮触发的事件方法如:
[self.textField resignFirstResponder];
UIButton
1、UIButton侧重于交互,响应事件
2、创建UIButton使用类方法
![](https://i-blog.csdnimg.cn/blog_migrate/b281da4992fa1c89f152f1294f2f79f0.png)
如:(system与custom的区别)
(1)如果button样式是system,那么不给定标题颜色,也能看见标题,默认蓝色
(2)如果button的样式是custom,那么除了给定标题内容之外,还需要给定标题颜色
(3)设置前景图片要用custom类型,使用custom样式,如果图片大小大于button的大小,那么图片会被压缩到与button等大,如果图片大小小于button的大小,那么保留图片大小,如果用systom类型会看不到图片
(4)设置背景图片,不论使用custom还是system,图片大于或者小于button大小,都会显示的与button等大
(5)点击时如果设置了图片,不出现闪烁的效果如:
![](https://i-blog.csdnimg.cn/blog_migrate/3ec15b5344cfd6c3b6a9780470738352.png)
3、button的勾选状态的显示
(1)创建一个按钮
(2)分别设置在普通状态下和选中状态下显示的背景图片
普通状态:
![](https://i-blog.csdnimg.cn/blog_migrate/6290b89455b7f12e595daf749613f34b.png)
选中状态:
![](https://i-blog.csdnimg.cn/blog_migrate/95ea22a54df17484ab4bcb179e488c8b.png)
(3)为按钮添加事件让他可以在每点击一下都改变一个状态如:
![](https://i-blog.csdnimg.cn/blog_migrate/639f6ecc2d106136e6f443633e23efb9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2ac6ae95d812b02daf9a9e4f3eafe4f2.png)
4、UIButton的外观控制属性
![](https://i-blog.csdnimg.cn/blog_migrate/07251e158798727ec3cf4a9a720d3efa.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1f09936a0a8e2f33c4293d125d5de8c2.png)
5、UIButton的添加事件的方法
![](https://i-blog.csdnimg.cn/blog_migrate/3785197772ac0d3901335d3a0668b16b.png)
UIImage
1、这是一个图片控件,不能直接显示,需要借助别的容器,比如button的前景或者背景图还有可以放在UIImageView上
2、获取某张图片对象如:
1、根据图片的名字
UIImage *image = [UIImage imageNamed:@“”];
2、根据路径
NSString *path = [[NSBundle mainBundle] pathForResource:@“图片名字” ofType:@“图片类型如:jpg”];
UIImage *image = [UIImage imageWithContentsOfFile:path];
UIImageView
1、存储指定图片
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
2、动态图
(1)先把图片放在
![](https://i-blog.csdnimg.cn/blog_migrate/d1e931d54c01ce1d97935a10fe632982.png)
(2)创建一个可变数组储存图片
(3)循环得到图片,并且把图片存进数组
(4)制定做动画的所有图片
(5)指定动画时间,动画重复次数
(6)开启动画
(7)添加imageView到视图上
属性:
![](https://i-blog.csdnimg.cn/blog_migrate/e21e252093946aa164d18b4bb08c8870.png)
自定义视图
优点:可以自己封装视图,降低开发成本,提高开发效率
特点:可复用,可移植,精炼(高内聚,低耦合)
如:把Label和textField放在一个视图当中,为了方便操作,可以把用到的控件设置为属性,方便外界调用,如创建一个自定义视图是LTView
步骤:
1、明确该视图内部有什么控件,并且将所有控件声明成属性
2、重写
initWithFrame方法,在里面创建子视图,并且添加子视图,这个里面传入的参数frame是LTView的位置和大小,在重写的方法里面添加的label和textField是LTView的子视图。代码如下:
![](https://i-blog.csdnimg.cn/blog_migrate/3cc5e14b080b25724a41b85b7ed9fad3.png)
3、为LTView添加方法,为里面的label和textField添加属性,如:
![](https://i-blog.csdnimg.cn/blog_migrate/b0171c555cc2cb7cdb18ab56c24c922a.png)
4、哪个类要用就引入LTView的头文件,记住:视图值负责展示,视图控制器负责执行事件。
拓展:如果外界要连续用到多个LTView,可以把里面不同的数据放到一个数组当中,然后用for循环添加LTView对象