iOS 屏幕旋轉處理

iOS 屏幕旋轉處理

在 iOS 設備上, 屏幕旋轉是個挺坑比的問題. 蘋果希望 app 對整個 app 做統(tǒng)一的旋轉處理, 而沒有提供單獨頁面的旋轉方案.
對于單獨頁面需要旋轉的情況下, 最好使用 Model 彈出 ViewController, 這樣 Application 不需要對當前 Application 的所有 Model 中的根控制器進行詢問.

  1. Application 啟動初始化(根據 plist 來設置 OrientationMask)

  2. 詢問 AppDelegate 當前 App 所支持的 OrientationMask

    AppDegete 中 application:supportedInterfaceOrientationsForWindow: 方法

  3. 如果是通過 Model 彈出的 ViewController, 則詢問當前 ModelViewController 所偏好的 Orientation, 否則執(zhí)行第4步:

    ModelViewController 中的
    preferredInterfaceOrientationForPresentation 方法

  4. 查看當前 App 屏幕上層 RootViewController 所支持的 Orientations

    該 ViewController 中的
    supportedInterfaceOrientations 方法
    對比當前控制器所支持的方向, 并與 App 所支持的方向對比
    相交有值則繼續(xù)進行, 相交無值則拋出異常

  5. 根據當前的重力方向, 在屏幕旋轉時詢問 RootViewController 是否需要旋轉

    即控制器的
    shouldAutorotate 方法, 返回 YES 則進行對應旋轉, 返回 NO 則不旋轉

但這種情況下, 執(zhí)行 Push Pop 操作 NavgationController 或者切換 TabbarController 時, 并不會通知系統(tǒng)進行回調(只有在 Model Present 操作或者 旋轉手機物理方向 時才會). 因此在執(zhí)行此類操作時, 需要手動強迫系統(tǒng)調用回調.
但實際上系統(tǒng)沒有提供這個方法, 目前僅能通過 KVC 設置系統(tǒng)的 Orientation 并告知系統(tǒng)去調用這些回調.

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];
[UIViewController attemptRotationToDeviceOrientation];
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末撵割,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子启绰,更是在濱河造成了極大的恐慌呜笑,老刑警劉巖忍级,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件套么,死亡現場離奇詭異陨界,居然都是意外死亡栏赴,警方通過查閱死者的電腦和手機盈咳,發(fā)現死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門耿眉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鱼响,你說我怎么就攤上這事鸣剪。” “怎么了丈积?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵筐骇,是天一觀的道長。 經常有香客問我桶癣,道長拥褂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任牙寞,我火速辦了婚禮饺鹃,結果婚禮上,老公的妹妹穿的比我還像新娘间雀。我一直安慰自己悔详,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布惹挟。 她就那樣靜靜地躺著茄螃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪连锯。 梳的紋絲不亂的頭發(fā)上归苍,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天用狱,我揣著相機與錄音,去河邊找鬼拼弃。 笑死夏伊,一個胖子當著我的面吹牛,可吹牛的內容都是我干的吻氧。 我是一名探鬼主播溺忧,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼盯孙!你這毒婦竟也來了鲁森?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤振惰,失蹤者是張志新(化名)和其女友劉穎歌溉,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體报账,經...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡研底,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年埠偿,在試婚紗的時候發(fā)現自己被綠了透罢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡冠蒋,死狀恐怖羽圃,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情抖剿,我是刑警寧澤朽寞,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站斩郎,受9級特大地震影響脑融,放射性物質發(fā)生泄漏。R本人自食惡果不足惜缩宜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一肘迎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锻煌,春花似錦妓布、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至捂龄,卻和暖如春释涛,著一層夾襖步出監(jiān)牢的瞬間加叁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工唇撬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留殉农,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓局荚,卻偏偏與公主長得像超凳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子耀态,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,104評論 25 707
  • 發(fā)現 關注 消息 iOS 第三方庫轮傍、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,102評論 4 62
  • 春節(jié)過完驰吓,我要回城工作了,媽媽化療不能出外面系奉,怕感冒檬贰。爸爸送我去車站,順便到姑姑家缺亮,看看老姑翁涤。 陽光燦爛,藍天白云...
    華客魯俊閱讀 287評論 4 8
  • 前兩天我們六個人的微信群被Z要結婚的消息炸活了,沉寂了好幾個月的群突然變得熱鬧非凡并鸵,有人問什么時候辦婚禮鸳粉,有人問房...
    花未全閱讀 537評論 0 2
  • “哎呀,美女园担,你可別試啊届谈,這鞋子沒有你的碼,你可別把鞋子給擠破了”店員大聲嚷嚷著粉铐,用著嫌棄和驚慌的表情對(女主)說...
    心機胖娃閱讀 122評論 0 0