UIWindow.h详解
#import <Foundation/Foundation.h>//基础框架入口#import <CoreGraphics/CoreGraphics.h>//绘图入口#import <UIKit/UIView.h>//视图对象#import <UIKit/UIApplication.h>//提供iOS程序运行期的协作和控制#import <UIKit/UIKitDefines.h>//一些宏定义NS_ASSUME_NONNULL_BEGIN typedef CGFloat UIWindowLevel;//32位则为float | 64位为double/*UIEvent 触摸事件,运动事件UIScreen 屏幕处理NSUndoManager 记录撤销,修改操作的消息UIViewController 视图控制器*/@class UIEvent,UIScreen, NSUndoManager,UIViewController;NS_CLASS_AVAILABLE_IOS(2_0)@interface UIWindow :UIView@property(nonatomic,strong)UIScreen *screen; @property(nonatomic)UIWindowLevel windowLevel; @property(nonatomic,readonly,getter=isKeyWindow) BOOL keyWindow;- (void)becomeKeyWindow; - (void)resignKeyWindow; - (void)makeKeyWindow;- (void)makeKeyAndVisible; @property(nullable,nonatomic,strong)UIViewController *rootViewController NS_AVAILABLE_IOS(4_0); // default is nil/*事件拦截分发到指定视图对象当用户发起一个事件,比如触摸屏幕或者晃动设备,系统产生一个事件,同时投递给UIApplication,而UIApplication则将这个事件传递给特定UIWindow进行处理(正常情况都一个程序都只有一个UIWindow),然后由UIWindow将这个事件传递给特定的对象(即first responder)并通过响应链进行处理。虽然都是通过响应链对事件进行处理,但是触摸事件和运动事件在处理上有着明显的不同(主要体现在确定哪个对象才是他们的firstresponder):*/- (void)sendEvent:(UIEvent *)event; //窗口坐标系统转化- (CGPoint)convertPoint:(CGPoint)point toWindow:(nullableUIWindow *)window;//转化当前窗口一个坐标相对另外一个窗口的坐标- (CGPoint)convertPoint:(CGPoint)point fromWindow:(nullableUIWindow *)window;//转化另外窗口一个坐标相对于当前窗口的坐标- (CGRect)convertRect:(CGRect)rect toWindow:(nullableUIWindow *)window;//转化当前窗口一个矩形坐标相对另外一个窗口的坐标- (CGRect)convertRect:(CGRect)rect fromWindow:(nullableUIWindow *)window;//转化另外窗口一个矩形坐标相对于当前窗口的坐标@endUIKIT_EXTERN constUIWindowLevel UIWindowLevelNormal;//默认等级UIKIT_EXTERN constUIWindowLevel UIWindowLevelAlert;//UIAlert等级UIKIT_EXTERN constUIWindowLevel UIWindowLevelStatusBar;//状态栏等级UIKIT_EXTERN NSString *const UIWindowDidBecomeVisibleNotification;// nil 通知对象窗口为可见UIKIT_EXTERN NSString *const UIWindowDidBecomeHiddenNotification; // nil 通知对象窗口为隐藏UIKIT_EXTERN NSString *const UIWindowDidBecomeKeyNotification; // nil 通知对象窗口为重要UIKIT_EXTERN NSString *const UIWindowDidResignKeyNotification; // nil 通知对象窗口取消主窗//当键盘显示或消失时,系统会发送相关的通知:UIKIT_EXTERN NSString *const UIKeyboardWillShowNotification;//通知键盘对象视图即将加载UIKIT_EXTERN NSString *const UIKeyboardDidShowNotification;//通知键盘对象视图完全加载UIKIT_EXTERN NSString *const UIKeyboardWillHideNotification;//通知键盘对象视图即将隐藏UIKIT_EXTERN NSString *const UIKeyboardDidHideNotification;//通知键盘对象视图完全隐藏/*通知消息 NSNotification中的 userInfo字典中包含键盘的位置和大小信息,对应的key为UIKeyboardFrameBeginUserInfoKeyUIKeyboardFrameEndUserInfoKeyUIKeyboardAnimationDurationUserInfoKeyUIKeyboardAnimationCurveUserInfoKeyUIKeyboardFrameBeginUserInfoKey,UIKeyboardFrameEndUserInfoKey对应的Value是个NSValue对象,内部包含CGRect结构,分别为键盘起始时和终止时的位置信息。UIKeyboardAnimationCurveUserInfoKey对应的Value是NSNumber对象,内部为UIViewAnimationCurve类型的数据,表示键盘显示或消失的动画类型。UIKeyboardAnimationDurationUserInfoKey对应的Value也是NSNumber对象,内部为double类型的数据,表示键盘h显示或消失时动画的持续时间例如,在UIKeyboardWillShowNotification,UIKeyboardDidShowNotification通知中的userInfo内容为userInfo = {UIKeyboardAnimationCurveUserInfoKey = 0;UIKeyboardAnimationDurationUserInfoKey = "0.25";UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 216}}";UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 588}";UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 372}";UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 480}, {320, 216}}";UIKeyboardFrameChangedByUserInteraction = 0;UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 264}, {320, 216}}";}在UIKeyboardWillHideNotification,UIKeyboardDidHideNotification通知中的userInfo内容为:userInfo = {UIKeyboardAnimationCurveUserInfoKey = 0;UIKeyboardAnimationDurationUserInfoKey = "0.25";UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 216}}";UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 372}";UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 588}";UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 264}, {320, 216}}";UIKeyboardFrameChangedByUserInteraction = 0;UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 480}, {320, 216}}";}*/UIKIT_EXTERN NSString *const UIKeyboardFrameBeginUserInfoKey NS_AVAILABLE_IOS(3_2);// NSValue of CGRectUIKIT_EXTERN NSString *const UIKeyboardFrameEndUserInfoKey NS_AVAILABLE_IOS(3_2);// NSValue of CGRectUIKIT_EXTERN NSString *const UIKeyboardAnimationDurationUserInfoKeyNS_AVAILABLE_IOS(3_0);// NSNumber of doubleUIKIT_EXTERN NSString *const UIKeyboardAnimationCurveUserInfoKey NS_AVAILABLE_IOS(3_0);// NSNumber of NSUInteger (UIViewAnimationCurve)UIKIT_EXTERN NSString *const UIKeyboardIsLocalUserInfoKey NS_AVAILABLE_IOS(9_0);// NSNumber of BOOLUIKIT_EXTERN NSString *const UIKeyboardWillChangeFrameNotification NS_AVAILABLE_IOS(5_0);//键盘即将改变布局发出通知UIKIT_EXTERN NSString *const UIKeyboardDidChangeFrameNotification NS_AVAILABLE_IOS(5_0);//键盘已经改变布局后发出通知UIKIT_EXTERN NSString *const UIKeyboardCenterBeginUserInfoKey NS_DEPRECATED_IOS(2_0,3_2);UIKIT_EXTERN NSString *const UIKeyboardCenterEndUserInfoKey NS_DEPRECATED_IOS(2_0,3_2);UIKIT_EXTERN NSString *const UIKeyboardBoundsUserInfoKey NS_DEPRECATED_IOS(2_0,3_2);NS_ASSUME_NONNULL_END
UIWindow.h详解相关推荐
- free -h 详解
1.命令 free -h 2.参数详解 total: 内存总数 used: 已经使用内存数 free: 完全空闲内存 shared: 多个进程共享的内存 buffers: 用于块设备数据缓冲,记录文件 ...
- C语言math.h详解
math.h常用函数详解 1. 取绝对值 double fabs(double a); 对a取绝对值 2.取整与取余 int ceil (double a); 取上整(里面可以填整数也能填小数,整数返 ...
- windows.h 详解
参考windows.h解构 刚开头的一段注释是对该头文件的描述: /*++ BUILD Version: 0001 Increment this if a change has global effe ...
- windows.h详解
参考 http://blog.csdn.net/fengningning/article/details/2306650?locationNum=1&fps=1 windows.h解构 刚开头 ...
- C/C++—— #include“stdafx.h”详解
转自:http://blog.csdn.net/qingkong8832/article/details/6695123 1,用VS2008新建项目,选择[Win32]-[Win32控制台应用程序]- ...
- CGGeometry.h详解
本文转载至:http://blog.csdn.net/chengyingzhilian/article/details/7894195 这些是在CGGeometry.h里的 CGPoint.CGSiz ...
- MFC Afx*.h 详解
Afx前缀是微软MFC一个bai小组的名称du简写,并没有别的意义. MFC的很dao多代码,zhuan包括全局函数名.宏.shu头文件名都使用了"Afx". Afx*.h是一组M ...
- c标准库头文件ctype.h详解
最近实践了一些编程,越来越感觉库函数的重要性.掌握越来越多的函数才会站在巨人的肩膀上思考问题,而不是自己去写代码去实现函数,自己又能写几个函数呢-- ctype.h是C标准函数库中的头文件,定义了一批 ...
- 51单片机c语言编程的头文件,51单片机编程的头文件reg51.h详解
我们在用c语言编程时往往第一行就是头文件,51单片机为reg51.h或reg52.h,51单片机相对来说比较简单,头文件里面内容不多,像飞思卡尔.ARM系列的单片机头文件往往内容就非常多,尽管如此,对 ...
最新文章
- 诗歌rails之如何写一个简单的Rails Plugin
- FAST选址与三维仿真模拟研究
- SQL:使用 CASE
- WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色
- Java发邮件-QQ服务器认证
- 前端程序员最爱用的8款代码编辑器,你用哪款?
- left join on用法_MySQL 多表查询 quot;Joinquot;+“case when”语句总结
- java数字排序代码,进阶加薪全靠它!
- 20169210 2016-2017-2《网络攻防实践》第五周作业
- 一个文件版的名片管理系统(Python3)
- c语言暂存按键数据变量,ET6218R按键检测程序
- emui内核支持kvm吗_EMUI和MIUI为什么不基于安卓linux内核不使用虚拟机直接用c++开发一些更流畅系统自带软件呢?...
- coreseek笔记
- JUnit执行单元测试用例成功,mvn test却失败的问题和解决方法
- Linux安装RPM、YUM
- CPU是沙子做的,凭什么卖那么贵?
- 纯CSS3流光边框特效
- python 百度云不限速版_现在各位是怎么应对百度网盘限速的?
- dnf吸怪源码c语言,发DNF源码了
- 7-50 近似求PI (15分)
热门文章
- Linux 第21天: (09月14日) Linux自动化安装和SELinux
- powermill编程需注意的准则
- jquery利用雅虎YQL 做中间层进行跨域请求
- linux top cpu 软中断,linux诊断CPU软中断问题
- 数码相机中关于Auto/A/S/P/M档的使用
- DayDreamInGIS ArcGIS-AddIn 数据处理工具使用说明(裁剪工具/字段修改/要素合并/属性筛选/空间连接)
- pandas的引用与复制
- iPhone/iPad高级应用与手游开发学习笔记:多点触摸与手势检测(三:UIPinchGestureRecognizer和UIRotationGestureRecognizer)
- 再次携号转网_携号转网能“转”几次,间隔时间是多长,具体有哪些条件?望周知...
- 查看和终止 Oracle 连接会话以及正在执行的 SQL 语句