iOS - UIKit
1、UIKit 框架基本结构
1)控件
屏幕上的所有 UI 元素都叫做控件(也有叫做视图、组件),比如按钮(UIButton)、文本(UILabel)都是控件。
为了便于开发者打造各式各样的优秀 App,UIKit 框架提供了非常多功能强大又易用的 UI 控件,但并不是每一个都很常用,有些控件可能 1 年内都用不上,有些控件天天用,比如 UIButton、UILabel、UIImageView、UITableView 等等。
每个控件都是个容器,能容纳其他控件。内部小控件是大控件的子控件,大控件是内部小控件的父控件。
一个控件看不见有哪些可能:
- 宽度或者高度其实为 0
- 位置不对(比如是个负数或者超大的数,已经超出屏幕)
- hidden == YES
- alpha <= 0.01
- 没有设置背景色、没有设置内容
- 可能是文字颜色和背景色一样
2)控件坐标系
在 UIKit 中,坐标系的原点(0,0)在左上角,x 值向右正向延伸,y 值向下正向延伸。
1.1 各控件之间的层次结构
|—— UIAcceleration
|
|—— UIAccelerometer
|
|—— UIAccessibilityElement
|
|—— UIActivity
| |—— UIBarButtonItem
|—— UIBarItem ——————————————————————-|
| |—— UITabBarItem
|—— UIBeziPath
|
|—— UIColor
|
|—— UIDevice
|
|—— UIDocumentInteractionController
|
|—— UIEvent
|
|—— UIFont |—— UILongPressGestureRecognizer |—— UIWindow
| | |
|—— UIGestureRecognizer —————————————|—— UIPanGestureRecognizer |—— UILabel
| | |
|—— UIImage |—— UIPinchGestureRecognizer |—— UIPickerView
| | |
|—— UILocalizedIndexedCollation |—— UIRotationGestureRecognizer |—— UIProgressView
| | |
|—— UILocalNotification |—— UISwipeGestureRecognizer |—— UIActivityIndicatorView |—— UITextView
| | | |
|—— UIMenuController |—— UITapGestureRecognizer |—— UIImageView |—— UITableView
| | |
NSObject ——|—— UIMenuItem |—— UIScrollView ——————————————-——|—— UICollectionView
| |
|—— UINavigationItem |—— UITabBar
| |
|—— UINib |—— UIToolbar |—— UIStepper
| | |
|—— UIPasteboard |—— UINavigationBar |—— UIButton
| | |
|—— UIPopoverController |—— UISimpleTextPrintFormatter |—— UITableViewCell |—— UIDatePicker
| | | |
|—— UIPrintFormatter ———————————————-|—— UIMarkupTextPrintFormatter |—— UIActionSheet |—— UIPageControl
| | | |
|—— UIPrintInfo |—— UIViewPrintFormatter |—— UIAlertView |—— UISegmentedControl
| | |
|—— UIPrinInteractionController |—— UISearchBar |—— UITextField
| | |
|—— UIPrintPageRender |—— UIApplication |—— UIWebView |—— UISlider
| | | |
|—— UIPrintPaper |—— UIView ———————————————————————|—— UIControl ————————————————————|—— UISwitch
| |
|—— UIResponder ———————————————-—————|—— UIViewController —————————————|—— UISplitViewController
| |
|—— UIScreen |—— UITabBarController
| |
|—— UIScreenMode |—— UITableViewController
| | |—— UIImagePickerController
|—— UISearchDisplayController |—— UINavigationController ————|
| | |—— UIVideoEditorController
|—— UITextChecker |—— UICollectionViewController
| |
|—— UITextInputStringTokenizer |—— UIPageViewController
| |
|—— UITextPosition |—— UIActivityViewController
|
|—— UITextRanger
|
|—— UITouch
|
|—— CMMotionManager
1.2 各控件关联说明
UIWindow : UIView 窗口
UIApplication : UIResponder 应用
UIView : UIResponder 视图
UILabel : UIView 标签
UIProgressView : UIView 进度条
UIAlertView : UIView 警告框
UIActionSheet : UIView 操作表
UIPickerView : UIView 选择框
UIActivityIndicatorView : UIView 风火轮
UIImageView : UIView 图像视图
UIWebView : UIView 网页视图
UIScrollView : UIView 滚动视图
UITextView : UIScrollView 多行文本视图
UIToolbar : UIView 工具条
UIControl : UIView 控制器
UITextField : UIControl 文本框控件
UIButton : UIControl 按钮控件
UISwitch : UIControl 开关按钮控件
UISegmentedControl : UIControl 选择控件
UISlider : UIControl 滑块控件
UIStepper : UIControl 微调器控件
UIDatePicker : UIControl 日期选择器控件
UIViewController : UIResponder 视图控制器
UITableViewController : UIViewController 表格视图控制器
UITableView : UIScrollView 表格视图
UITableViewCell : UIView 表格视图单元
UINavigationController : UIViewController 导航视图控制器
UINavigationBar : UIView 导航条
UITabBarController : UIViewController 标签视图控制器
UITabBar : UIView 标签条
UICollectionViewController : UIViewController 网格视图控制器
UICollectionView : UIScrollView 网格视图
UIPageViewController : UIViewController 页视图控制器
UIPageControl : UIControl 页控件
UISplitViewController : UIViewController 分割视图控制器
UIImagePickerController : UINavigationController 图像选择视图控制器
UIActivityViewController : UIViewController 分享视图控制器
UIActivity : NSObject 分享
UISearchController : NSObject 搜索视图控制器
UISearchBar : UIView 搜索条
UIAlertController : UIViewController 警告视图控制器
UIColor : NSObject 颜色
UIDevice : NSObject 设备信息
CMMotionManager : NSObject 加速度传感器
UIGestureRecognizer : NSObject 手势检测
UITapGestureRecognizer : UIGestureRecognizer 点击手势
UILongPressGestureRecognizer : UIGestureRecognizer 长按手势
UIRotationGestureRecognizer : UIGestureRecognizer 旋转手势
UIPinchGestureRecognizer : UIGestureRecognizer 捏合手势
UIPanGestureRecognizer : UIGestureRecognizer 拖动手势
UISwipeGestureRecognizer : UIGestureRecognizer 滑动手势
UITouch : NSObject 触摸
AudioServicesPlayAlertSound : 短频音效播放
AVAudioPlayer : NSObject 音频播放
MPMoviePlayerViewController : UIViewController 视频播放视图控制器
MPMoviePlayerController : NSObject 视频播放控件
AVPlayerViewController : UIViewController 音视频播放视图控制器
AVPlayer : NSObject 音视频播放控件
2、各控件功能说明
2.1 文字显示
2.2 进度显示
2.3 弹框提醒
2.4 滚动视图
2.5 内容选择
2.6 工具条
iOS - UIKit的更多相关文章
- iOS UIKit:viewController之动画(5)
当弹出一个view controller时,UIKit提供了一些标准转换动画,并且也支持用户自定义的动画效果. 1 UIView动画 UIView是自带动画实现功能,其中有两种方式实现: ...
- iOS UIKit:TableView之单元格配置(2)
Table View是UITableView类的实例对象,其是使用节(section)来描述信息的一种滚动列表.但与普通的表格不同,tableView只有一行,且只能在垂直方向进行滚动.tableVi ...
- iOS UIKit:Navigation Controllers
navigation controller是一种层次结构的container view controller,即其通过一个view controllers栈来管理内部的content view con ...
- iOS UIKit:viewController之定义(2)
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- iOS UIKit:viewController之层次结构(1)
ViewController是iOS应用程序中重要的部分,是应用程序数据和视图之间的重要桥梁.且应用程序至少有一个view controller.每个view controller对象都负责和管理一个 ...
- iOS UIKit:view
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...
- iOS UIKit:App
1.App生命周期 IOS架构是由许多设计模式实现,如model-view-controller 和 delegation模式. 1.1 main函数 与其它框架类似,IOS框架的入口也是从main函 ...
- ios UIKit动力
UIkit动力学是UIkit框架中模拟真实世界的一些特性. UIDynamicAnimator 主要有UIDynamicAnimator类,通过这个类中的不同行为来实现一些动态特性. 它一般有两种初始 ...
- ios UIKit动力 分类: ios技术 2015-07-14 12:55 196人阅读 评论(0) 收藏
UIkit动力学是UIkit框架中模拟真实世界的一些特性. UIDynamicAnimator 主要有UIDynamicAnimator类,通过这个类中的不同行为来实现一些动态特性. 它一般有两种初始 ...
- iOS UIKit Dynamics入门 UIKit动力学,实现重力、连接、碰撞、悬挂等动画效果
本文为转载文章 版权归原文所有 什么是UIKit动力学(UIKit Dynamics) 其实就是UIKit的一套动画和交互体系.我们现在进行UI动画基本都是使用CoreAnimation或者UIVie ...
随机推荐
- 中颖4位MCU的减法汇编指令
1, SUB M 执行动作: M - A -> A, 如果M-A的过程中没有产生借位,则CY= 1,如果产生了借位,则CY= 0. 其中,A为累加器. 2, SBI M, I 执行动作:M - ...
- PHP程序员如何突破成长瓶颈
PHP因为简单而使用,但不能因为它的简单而限制我们成长!文章给PHP工程师突破成长瓶颈提了一些建议,希望PHPer能够突破自己,有更好的发展. AD: 作为Web开发中应用最广泛的语言之一,PHP有着 ...
- JavaEE基础(一)
1.计算机基础知识(计算机概述) A:什么是计算机?计算机在生活中的应用举例 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备. ...
- HDU 2236:无题II(二分搜索+二分匹配)
http://acm.hdu.edu.cn/showproblem.php?pid=2236 题意:中文题意. 思路:先找出最大和最小值,然后二分差值,对于每一个差值从下界开始枚举判断能不能二分匹配. ...
- phpize的深入理解
安装(fastcgi模式)的时候,常常有这样一句命令:/usr/local/webserver/php/bin/phpize一.phpize是干嘛的?phpize是什么东西呢?php官方的说明:htt ...
- xtjh
<div onkeydown="javascript:if(event.keyCode==13) search()"> <br > ISBN<span ...
- Oracle绑定变量
select * from table where id = ? 类似于上面这样的sql,如果不用绑定变量,每次执行时Oracle会认为是不同的sql,会在每次执行时生成一遍执行计划,而执行计划的生成 ...
- 移动端web出现的一系列问题
今天做移动端的web,在做后期处理的时候,发现了非常多的问题.下面我分别列举一下吧~~ 1.移动端浏览器众多,各种浏览器之间的显示等都有差异,很多需要单独处理,于是我需要判断分别是什么浏览器.js代码 ...
- hiho 第118周 网络流四·最小路径覆盖
描述 国庆期间正是旅游和游玩的高峰期. 小Hi和小Ho的学习小组为了研究课题,决定趁此机会派出若干个调查团去沿途查看一下H市内各个景点的游客情况. H市一共有N个旅游景点(编号1..N),由M条单向游 ...
- 【JSON】Jackson初学,及常用的例子
现在很多公司的项目都基于SOA架构,系统间的调用有许多方式,其中一种常见的是用HTTP协议.以JSON格式返回结果. 这使得JSON的使用更加普遍.而市面上处理JSON的框架五花八门,常见的有JSON ...