UIKit中的常用控件(一)

这个系列的博客主要记录一下UIKit中各类控件的主要要点和用法。本篇将介绍一下UILabel、UIImageView和UIButton


一、UILabel

主要属性
  • text
    文本内容

  • textColor
    文本颜色

  • font
    文本字体(包括字体和字号)

  • textAlignment
    对齐方式

  • numerOfLines
    行数(置为0时自动换行)

  • enable
    是否可用

  • lineBreakMode
    决定一行文本中省略的位置

  • shadowColor/shadowOffset
    阴影(在shadowOffset中可以设置阴影的水平和垂直的偏移方向)



二、UIImageView

主要属性
  • image
    图片资源。一个UIImage类型的对象

  • contentMode
    决定图片的内容显示模式

  • ...ScaleToFill:完全的拉伸或压缩

  • ...ScaleAspectFit:宽高比不变,适应大小

  • ...ScaleAspectFill:宽高比不变,填充区域

  • ...Center:居中

  • ...Top/Bottom/Left/Right:置于顶部/底部/左侧/右侧

  • ...TopLeft/TopRight/BottomLeft/BottomRight:置于左上/右上/左下/右下

  • clipsToBounds
    一个布尔类型的属性。决定图片是否被裁减。默认为NO

创建方式
  1. [[UIImageView alloc] init]
    创建后需要手动设置frame

  2. [[UIImageView alloc] initWithFrame:]
    直接把frame作为参数传入

  3. [[UIImageView alloc] initWithImage:]
    把图片作为参数传入,可以使创建的view的尺寸与图片一致,但需要手动设置origin

实现序列帧动画
  1. 给animationImages属性设置实例变量,传入一个UIImage数组
  2. 设置animationRepeatCount属性,表示循环次数,0则无限循环
  3. 设置animationDuration参数,表示完整播放完一次动画所需的时间
  4. 调用startAnimating方法,开始播放帧动画
  5. 调用stopAnimation方法,停止播放帧动画


UIImage加载图片的2种方式
  • 通过imageNamed:方法获取保存在Assets中火保存在项目资源包中的图片。但是需要注意:
  1. 放到Assets.xcassets中的图片,默认就有缓存
  1. 就算指向它的指针被销毁,该资源也不会从内存中被释放掉
  2. 适合保存常用的图片
  • 通过imageWithContentsOfFile:方法获取保存在项目资源包目录下的图片,不能获取保存在Assets中的图片
  1. 打包后,Assets文件夹会变成Assets.car文件,无法拿到路径,因此就无法通过imageWithContentsOfFile:方法获取图片
  1. 指向他的指针被销毁时,资源会从内存中被释放掉
  2. 适合保存不常使用的图片,或大量的图片资源



三、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
    按钮的背景图片,会始终被拉伸放缩至与按钮的尺寸大小一致


3.UIButton在代码中的使用
  • 创建
    使用buttonWithType:方法初始化,并设置按钮的类型(按钮的类型只能在初始化的时候设置)

  • 设置文字
    需要分状态进行设置,button的text属性是只读的。因此需要调用:
    setTitle:forState:等方法来设置按钮在不同状态下的文本属性

  • 设置内容图片
    与设置文字相同,需要区分状态
    setImage:forState:

  • 设置背景图片
    与设置文字相同,需要区分状态
    setBackgroundImage:forState:

  • 在代码中调用方法
    调用addTarget:action:forControlEvents:方法来为按钮增加一个触发方法:

  • 第一个参数执行方法的控制器

  • 第二个参数表示执行的方法(SEL类型)

  • 第三个参数表示触发按钮的事件类型


4.改变UIButton中图片和文字的位置
  • 方式1:在自定义的UIButton子类中重写两个方法来修改
  • 重写titleRectForContentRect:方法修改文字的frame
  • 重写imageRectForContentRect:方法修改图片的frame
  • 方式2:在自定义的UIButton子类中重写layoutSubviews方法来修改子控件布局


5.改变UIButton中的内边距
  • 通过设置按钮的contentEdgeInsets来设置所有内容的内边距
  • 通过设置按钮的imageEdgeInsets来设置图片的内边距
  • 通过设置按钮的titleEdgeInsets来设置文字的内边距

你可能感兴趣的:(UIKit中的常用控件(一))