UIWindow API個人翻譯。(英語爛)

UIWindow API

我果果的官方文檔

最近被逼得很鬧心茎活,要努力看果果官方文檔才不會太生氣昙沦。

我有上網查一些資料,如果引用了载荔,敬請見諒

//NS_ASSUME_NONNULL_BEGIN假設不為空的開始盾饮,我上網查了,說這個是oc的一個新特性懒熙,類似于swift的!和?丐谋。
NS_ ASSUME _ NONNULL_BEGIN


typedef CGFloat UIWindowLevel;

@class UIEvent, UIScreen, NSUndoManager, UIViewController;
//這個類至少得是ios2.0以上的版本才可以使用。并且繼承UIView煌珊。
NS_CLASS_AVAILABLE_IOS(2_0) @interface UIWindow : UIView
//screen默認是一個線程安全的強引用号俐。并且至少在ios3.2以上才可以用。初始化的時候默認的是  UIScreen的 mainScreen定庵。并且改變這個screen是一個不劃算的事情吏饿。(官方建議你別動它)
@property(nonatomic,strong) UIScreen *screen NS_AVAILABLE_IOS(3_2);  // default is [UIScreen mainScreen]. changing the screen may be an expensive operation and should not be done in performance-sensitive code
//UIWindowLevel是前面定義的一個float型的變量。默認0.0
@property(nonatomic) UIWindowLevel windowLevel;                   // default = 0.0
//不會解釋但是知道意思蔬浙,定義一個只讀的保證線程安全的bool值猪落,(大致覺得應該是,是否是主窗口的意思)
@property(nonatomic,readonly,getter=isKeyWindow) BOOL keyWindow;
//可以在子類重寫畴博,不能直接調用
    //一個是成為主窗口笨忌,另外一個是將其設成不是主窗口
- (void)becomeKeyWindow;                               // override point for subclass. Do not call directly
- (void)resignKeyWindow;                               // override point for subclass. Do not call directly
//制作主窗口,和制作主窗口的并且可視的俱病。
- (void)makeKeyWindow;
- //方便官疲,大多數app調用它去展示其主窗口并且也可以制作其鍵。否則使用view否認的屬性
- (void)makeKeyAndVisible;                             // convenience. most apps call this to show the main window and also make it key. otherwise use view hidden property
//可以為空亮隙,線程安全途凫,強類型。(默認為空)
@property(nullable, nonatomic,strong) UIViewController *rootViewController 
//可以在ios4.0以上使用
NS_AVAILABLE_IOS(4_0);  // default is nil
//發(fā)送事件
//有UIApplication調用去調度事件在window里的view
- (void)sendEvent:(UIEvent *)event;                    // called by UIApplication to dispatch events to views inside the window
//四個坐標轉換溢吻。
- (CGPoint)convertPoint:(CGPoint)point toWindow:(nullable UIWindow *)window;    // can be used to convert to another window
- //
- (CGPoint)convertPoint:(CGPoint)point fromWindow:(nullable UIWindow *)window;  // pass in nil to mean screen
- (CGRect)convertRect:(CGRect)rect toWindow:(nullable UIWindow *)window;
- (CGRect)convertRect:(CGRect)rect fromWindow:(nullable UIWindow *)window;

@end
//UIWindowLevel總共有三種級別:

UIWindowLevleNormal,

UIWindowLevelAlert;

//其中normal級別最低维费,再而是statusBar,級別最高的是alertView,alertView一般用來中斷用戶事件。打印出他們的值分別是0.0000促王,1000和2000

UIWindowLevelStatusBar;
UIKIT_EXTERN const UIWindowLevel UIWindowLevelNormal;
UIKIT_EXTERN const UIWindowLevel UIWindowLevelAlert;
UIKIT_EXTERN const UIWindowLevel UIWindowLevelStatusBar __TVOS_PROHIBITED;

// 這四個通知對象中的object都代表當前已顯示(隱藏)犀盟,已變成keyWindow(非keyWindow)的window對象,其中的userInfo則是空的蝇狼。于是我們可以注冊這個四個消息阅畴,再打印信息來觀察keyWindow的變化以及window的顯示,隱藏的變動

UIKIT_EXTERN NSString *const UIWindowDidBecomeVisibleNotification; // nil
UIKIT_EXTERN NSString *const UIWindowDidBecomeHiddenNotification;  // nil
UIKIT_EXTERN NSString *const UIWindowDidBecomeKeyNotification;     // nil
UIKIT_EXTERN NSString *const UIWindowDidResignKeyNotification;     // nil
//每一個通知包括一個空的對象和一個用戶信息字典包含鍵盤的開始和結束框架在屏幕坐標题翰。使用可變的UIView并且UIWindow可以轉換設備想要的坐標系恶阴,動畫的鍵值對僅僅可用will的通知诈胜。
// Each notification includes a nil object and a userInfo dictionary containing the
// begining and ending keyboard frame in screen coordinates. Use the various UIView and
// UIWindow convertRect facilities to get the frame in the desired coordinate system.
// Animation key/value pairs are only available for the "will" family of notification.
//鍵盤方面的通知
UIKIT_EXTERN NSString *const UIKeyboardWillShowNotification;
UIKIT_EXTERN NSString *const UIKeyboardDidShowNotification;
UIKIT_EXTERN NSString *const UIKeyboardWillHideNotification;
UIKIT_EXTERN NSString *const UIKeyboardDidHideNotification;
//鍵盤開始的坐標
UIKIT_EXTERN NSString *const UIKeyboardFrameBeginUserInfoKey        NS_AVAILABLE_IOS(3_2); // NSValue of CGRect
//鍵盤結束的坐標
UIKIT_EXTERN NSString *const UIKeyboardFrameEndUserInfoKey                  NS_AVAILABLE_IOS(3_2); // NSValue of CGRect
//鍵盤持續(xù)的時間
UIKIT_EXTERN NSString *const UIKeyboardAnimationDurationUserInfoKey     NS_AVAILABLE_IOS(3_0); // NSNumber of double
//鍵盤動畫效果
UIKIT_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 BOOL

// Like the standard keyboard notifications above, these additional notifications include
// a nil object and begin/end frames of the keyboard in screen coordinates in the userInfo dictionary.
//像一個標準的鍵盤通知,這些除了通知以外還包括一個空的對象冯事,和在用戶的字典里的一個空的對象和鍵盤在屏幕坐標系里的開始和結束的框架
UIKIT_EXTERN NSString *const UIKeyboardWillChangeFrameNotification  NS_AVAILABLE_IOS(5_0);
UIKIT_EXTERN NSString *const UIKeyboardDidChangeFrameNotification   NS_AVAILABLE_IOS(5_0);

// These keys are superseded by UIKeyboardFrameBeginUserInfoKey and UIKeyboardFrameEndUserInfoKey.
//這些是用來代替UIKeyboardFrameBeginUserInfoKey焦匈,UIKeyboardFrameEndUserInfoKey做UI知道的約束類型
UIKIT_EXTERN NSString *const UIKeyboardCenterBeginUserInfoKey   NS_DEPRECATED_IOS(2_0, 3_2) __TVOS_PROHIBITED;
UIKIT_EXTERN NSString *const UIKeyboardCenterEndUserInfoKey     NS_DEPRECATED_IOS(2_0, 3_2) __TVOS_PROHIBITED;
UIKIT_EXTERN NSString *const UIKeyboardBoundsUserInfoKey        NS_DEPRECATED_IOS(2_0, 3_2) __TVOS_PROHIBITED;
//假設不是空的結束
NS_ASSUME_NONNULL_END
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市昵仅,隨后出現(xiàn)的幾起案子缓熟,更是在濱河造成了極大的恐慌,老刑警劉巖摔笤,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件够滑,死亡現(xiàn)場離奇詭異,居然都是意外死亡吕世,警方通過查閱死者的電腦和手機劫扒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門沐旨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事艾杏《闲祝” “怎么了桨仿?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵喜庞,是天一觀的道長。 經常有香客問我终娃,道長味廊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任棠耕,我火速辦了婚禮余佛,結果婚禮上,老公的妹妹穿的比我還像新娘昧辽。我一直安慰自己衙熔,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布搅荞。 她就那樣靜靜地躺著,像睡著了一般框咙。 火紅的嫁衣襯著肌膚如雪咕痛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天喇嘱,我揣著相機與錄音茉贡,去河邊找鬼。 笑死者铜,一個胖子當著我的面吹牛腔丧,可吹牛的內容都是我干的放椰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼愉粤,長吁一口氣:“原來是場噩夢啊……” “哼砾医!你這毒婦竟也來了?” 一聲冷哼從身側響起衣厘,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤如蚜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后影暴,有當地人在樹林里發(fā)現(xiàn)了一具尸體错邦,經...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年型宙,在試婚紗的時候發(fā)現(xiàn)自己被綠了撬呢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡妆兑,死狀恐怖魂拦,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情箭跳,我是刑警寧澤晨另,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站谱姓,受9級特大地震影響借尿,放射性物質發(fā)生泄漏。R本人自食惡果不足惜屉来,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一路翻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧茄靠,春花似錦茂契、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至脐雪,卻和暖如春厌小,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背战秋。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工璧亚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脂信。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓癣蟋,卻偏偏與公主長得像透硝,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子疯搅,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內容

  • 每一個IOS程序都有一個UIWindow濒生,在我們通過模板簡歷工程的時候,xcode會自動幫我們生成一個window...
    jumping鵬閱讀 1,006評論 0 0
  • keyWindow 在我們通過模板簡歷工程的時候秉撇,xcode會自動幫我們生成一個window甜攀,然后讓它變成keyW...
    曉飛90閱讀 2,420評論 0 1
  • UIView的功能 負責渲染區(qū)域的內容,并且響應該區(qū)域內發(fā)生的觸摸事件 UIWindow 在iOS App中琐馆,UI...
    小蘑菇2閱讀 772評論 4 5
  • 一规阀、問題背景 最近需求量放緩,想起了以前曾經later的小需求瘦麸,也就是彈出來的AlertView中間的文本框輸入一...
    唐笛_Dylan閱讀 18,301評論 6 29
  • UIView專題 1UIWindow 1.1UIWindow簡介 UIWindow是一種特殊的UIView谁撼,通常在...
    Kevin_Junbaozi閱讀 1,553評論 0 4