IOS开发UI—UI控件概览

来源:互联网 发布:唱吧上传出现网络异常 编辑:程序博客网 时间:2024/05/17 00:53

一、首先来了解下项目的基本结构

1. 在新建好一个项目后

Main.storyboard:程序可视化的界面,可以通过拖拉控件来这里,代替写代码;

LaunchScreen.xib:程序启动界面(每一个运用程序刚启动的时候会有一个短暂的过度界面,可用于推送等等)。会先显示这个界面在进入程序主界面。【另一种办法是在Images.xcassets里面设置】

Images.xcassets:图片资源放置

Supporting Files:运用程序需要用到的所有资源(除图片之外的)

Products:???

2. ios开发过程

开发步骤:


1. UIKit,顾名思义跟UI有关,主要的界面元素都是封装在uikit内部的;

2. 利用UIKit框架提供的类来创建各种可视化组件对象,最后可以组成复杂而美观的UI界面;

三、UI控件概览(图片源自网路)

文字显示:  

  1> UILable 文本标签: 作用是显示一串固定的文字

  2> UIButton 按钮: 监听用户的点击事件,在用户点击后做出响应

  3> UITextFiled 文本输入框: 可以弹出键盘,让用户输入文本内容

  4> UITextView 能滚动的文字显示控件: 如果文字比较多,需要换行显示,并且需要编辑

进度显示:

  5> UIProgressView 进度条: 像游戏中的加载进度条一样,主要是用于显示文件的下载速度,程序的启动速度等

  6> UISlider 滑块: 在两个数值之间选择,如调节屏幕亮度、音量大小等

  8> UIActivityIndicator  圈圈(活动指示器、等待指示器): 一直转圈圈,表示用户需要等待

弹框提醒:

  9> UIAlertView 对话框:(中间弹框)从中间弹出一个框提示用户下一步该做什么


  10> UIActionSheet 底部弹框:  从底部弹出一个框提示用户下一步该做什么

滚动视图:

  11> UIScrollView 滚动的控件: 如果控件比较多,可以使用这个,像滚动视图等

  12> UIPageControl 分页控件:  能显示当前的页码

  13> UITableView  表格:  如果每一行显示的内容格式差不多,就用这个表格控件

  14> UICollectionView 九宫格:  如果显示的东西是一块一块、一格一格的,而且每个格子长的差不多,就可以用它

  15> UIWebView 网页显示控件:  一般用来显示网页,使用它,就可以在手机上浏览网

开关:

  16> UISwitch 开关

  17> UISegmentControl 选项卡:


  18> UIPickerView 选择器:  在多行数据之间只选择一行

  19> UIDatePicker 日期选择器

工具条:

  20> UIToolbar 工具条:  一般显示在底部或者键盘顶部,里面有几个小按钮

  21> UINavigationBar 导航条:  显示在顶部的条


四、控件常见属性

1. 每一个UI控件都是一个对象;

2. 修改UI控件的状态,其实就是修改UI控件的属性;(如修改UILable显示的文字,就是修改UILable对象的text属性)

3. 每一个UI控件都有不同的许多的属性;(具有独特的属性,公共属性都定义在UIView中)

4. UIView常见的属性 

  @property(nonatomic) CGRect frame: 能修改位置和尺寸 (控件所在矩形框在父控件中的位置和尺寸,以父控件的左上角为坐标原点)(可定义控件的位置origin 和 大小size)

  @property(nonatomic) CGPointt center: 能修改位置(控件的中心点在其父控件坐标系中的位置坐标, 以父控件的左上角为坐标原点)(可以定义控件的位置origin)

  @property(nonatomic) CGRect bounds: 能修改尺寸(控件所在矩形框的位置和尺寸,以自己的左上角为坐标原点)(可定义控件的大小size,注意不能定义位置)

*: 上面的三个属性是UIView类中非常重要的属性(需要注意的是当前的坐标是针对父视图的还是视图自己的)

  @property(nonatomic,readonly) UIView *superview: 获得自己的父控件对象

  @property(nonatomic,readonly,copy) NSArray *subviews: 获得自己的所有子控件对象

 // 使用forin循环遍历  获取当前控制器所管理的view的所有子控件    for (UIView *view in self.view.subviews) {        view.backgroundColor = [UIColor redColor];    }
  @property(nonatomic) NSInteger tag: 控件的ID(标识),父控件可以通过tag来找到对应的子控件

  @property(nonatomic) CGAffineTransform transform: 控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)

5. UIView常见的方法

  - (void)addSubview:(UIView *)view;  添加一个子控件view

  - (void)removeFromSuperview;  从父控件中移除

  - (UIView *)viewWithTag:(NSInteger)tag;  根据一个tag标识找出对应的控件(一般都是子控件)

* 前面谈到父控件与子控件,注意并不是继承的关系,这是因为我们的控件都是放在一个容器中的,容器中存在着包含关系[类似于DIV CSS 中的容器]。A容器中存B容器

并不是说A继承B

* 关于属性的案例在下一节Button中会结合按钮实例解析


五、UIKit坐标系

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

IOS的坐标空间分为“逻辑坐标空间”和“设备坐标空间”。前者的度量单位是“点”,后者的是“像素”。ios中所有与绘图相关的框架,如UIKit Core Graphics 与Core Animation均是针对逻辑坐标空间的。逻辑坐标空间与设备坐标空间存在映射关系。(思考?)

* 额外: ios中为什么坐标值会有小数部分,这是因为ios设备具有子像素渲染(Subpixel Rendering)技术,能够在相邻的像素之间通过插值算法来渲染图形,使得图像更加平滑、过渡更加自然。


0 1
原创粉丝点击