这个系列的博客主要记录一下UIKit中各类控件的主要要点和用法。本篇将介绍一下UILabel、UIImageView和UIButton
</br>
一、UILabel
主要属性
-
text
文本内容</br> -
textColor
文本颜色</br> -
font
文本字体(包括字体和字号)</br> -
textAlignment
对齐方式</br> -
numerOfLines
行数(置为0时自动换行)</br> -
enable
是否可用</br> -
lineBreakMode
决定一行文本中省略的位置</br> -
shadowColor/shadowOffset
阴影(在shadowOffset中可以设置阴影的水平和垂直的偏移方向)</br>
</br>
二、UIImageView
主要属性
-
image
图片资源。一个UIImage类型的对象</br> -
contentMode
决定图片的内容显示模式 -
...ScaleToFill:完全的拉伸或压缩
-
...ScaleAspectFit:宽高比不变,适应大小
-
...ScaleAspectFill:宽高比不变,填充区域
</br> -
...Center:居中
-
...Top/Bottom/Left/Right:置于顶部/底部/左侧/右侧
-
...TopLeft/TopRight/BottomLeft/BottomRight:置于左上/右上/左下/右下
-
clipsToBounds
一个布尔类型的属性。决定图片是否被裁减。默认为NO
</br>
创建方式
-
[[UIImageView alloc] init]
创建后需要手动设置frame
</br> -
[[UIImageView alloc] initWithFrame:]
直接把frame作为参数传入
</br> -
[[UIImageView alloc] initWithImage:]
把图片作为参数传入,可以使创建的view的尺寸与图片一致,但需要手动设置origin
</br>
实现序列帧动画
- 给animationImages属性设置实例变量,传入一个UIImage数组
- 设置animationRepeatCount属性,表示循环次数,0则无限循环
- 设置animationDuration参数,表示完整播放完一次动画所需的时间
- 调用startAnimating方法,开始播放帧动画
- 调用stopAnimation方法,停止播放帧动画
</br>
UIImage加载图片的2种方式
- 通过
imageNamed:
方法获取保存在Assets中火保存在项目资源包中的图片。但是需要注意:
- 放到Assets.xcassets中的图片,默认就有缓存
- 就算指向它的指针被销毁,该资源也不会从内存中被释放掉
- 适合保存常用的图片
- 通过
imageWithContentsOfFile:
方法获取保存在项目资源包目录下的图片,不能获取保存在Assets中的图片
- 打包后,Assets文件夹会变成Assets.car文件,无法拿到路径,因此就无法通过
imageWithContentsOfFile:
方法获取图片
- 指向他的指针被销毁时,资源会从内存中被释放掉
- 适合保存不常使用的图片,或大量的图片资源
</br>
三、UIButton
一般情况下,点击某个控件后,做出相应反应的按钮都是按钮。
按钮中可以既显示文本又显示图片,并可以自定义按钮中文本和图片的位置。
1.UIButton的状态
-
normal
普通状态,在默认情况下显示 -
highlighted
高亮状态 -
disabled
不可用状态
2.Storyboard中UIButton的常用属性
- Type
- System 系统默认格式
- Custom 自定义格式(用得最多的)
- Detail Disclosure 详情按钮
- Add Contact 添加联系按钮
- State Configer
- Default
- Highlighted
- Disabled
- Shadow Offset
偏移值只能是正值 - Image
按钮中的图片,默认情况下始终居中显示,不会随按钮尺寸变化拉伸 - BackgroundImage
按钮的背景图片,会始终被拉伸放缩至与按钮的尺寸大小一致
</br>
3.UIButton在代码中的使用
-
创建
使用buttonWithType:
方法初始化,并设置按钮的类型(按钮的类型只能在初始化的时候设置) -
设置文字
需要分状态进行设置,button的text属性是只读的。因此需要调用:
setTitle:forState:
等方法来设置按钮在不同状态下的文本属性 -
设置内容图片
与设置文字相同,需要区分状态
setImage:forState:
-
设置背景图片
与设置文字相同,需要区分状态
setBackgroundImage:forState:
-
在代码中调用方法
调用addTarget:action:forControlEvents:
方法来为按钮增加一个触发方法: -
第一个参数执行方法的控制器
-
第二个参数表示执行的方法(SEL类型)
-
第三个参数表示触发按钮的事件类型
</br>
4.改变UIButton中图片和文字的位置
- 方式1:在自定义的UIButton子类中重写两个方法来修改
- 重写
titleRectForContentRect:
方法修改文字的frame - 重写
imageRectForContentRect:
方法修改图片的frame - 方式2:在自定义的UIButton子类中重写
layoutSubviews
方法来修改子控件布局
</br>
5.改变UIButton中的内边距
- 通过设置按钮的
contentEdgeInsets
来设置所有内容的内边距 - 通过设置按钮的
imageEdgeInsets
来设置图片的内边距 - 通过设置按钮的
titleEdgeInsets
来设置文字的内边距
网友评论