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 ...
随机推荐
- sort DEMO
测试用文件: [weblogic@etp-mall-dev7][/tmp]$ cat msn.txt aaa, fff, bbb, cc, ee, gg, hh, zz, mmm, DEMO1:按第一 ...
- centos7重启rsyslog服务|centos7重启syslog服务
centos7重启rsyslog服务: systemctl restart rsyslog 使用:(killall无效) killall -HUP rsyslog
- Java获取字符串编码方式
直接下载吧: http://files.cnblogs.com/files/xiluhua/BytesEncodingDetectTool.rar
- css样式(二)(伪类 | 伪元素 | 导航 | 图像拼合 | 属性选择器 )
一.rgb值: RGBA 颜色 RGBA 颜色值得到以下浏览器的支持:IE9+.Firefox +.Chrome.Safari 以及 Opera +. RGBA 颜色值是 RGB 颜色值的扩展,带有一 ...
- Finding Nemo 分类: POJ 2015-07-11 10:11 10人阅读 评论(0) 收藏
Finding Nemo Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 8117 Accepted: 1883 Desc ...
- Java学习之路(四)
1:static关键字 静态变量可以使用类名来调用 也可以使用对象来调用 但是同一个类的同一个静态变量存储的位置是一样的 所以无论改变那个对象的静态变量的值其他对象的同一个变量的值也会改变 静态函数 ...
- HTML+CSS编写规范
在任何一个项目或者系统开发之前都需要定制一个开发约定和规则,这样有利于项目的整体风格统一.代码维护和扩展.由于Web项目开发的分散性.独立性.整合的交互性等,所以定制一套完整的约定和规则显得尤为重要. ...
- Entity Framework 第七篇 简化排序
上篇介绍了EF的分页实现,分页的时候会用到排序,但是使用起来表达式写的似乎很繁琐 , ); 如果直接使用排序字符串,不更直观简便么? respository.GetPaged<S_Users&g ...
- CentOS 配置solr中文分词器
第一步:使用IK-Analyzer.把分析器的文件夹上传到服务器. 第二步:需要把分析器的jar包添加到solr工程中. [root@bogon IK Analyzer 2012FF_hf1]# cp ...
- C++引入自定义类(同一项目下 和 不同项目下的 区别)
今天遇到的问题,使用其他项目中的类时,引入头文件无效,然后发现如下: 项目B: 自定义类B BPro.h #include<iostream> using namespace std; c ...