iOS 獲取橫豎屏的方法和問題

2021-07-01 22:37:25 字數 1136 閱讀 4110

關於 橫豎屏切換後的檢測 ,檢視了很多篇文章,通過自己實踐總結了一下。我的螢幕切換判斷都是在uiview上面

第一種就是uiview 的

layoutsubviews方法裡面 ,什麼時候會呼叫這個方法呢?我也是檢視其他部落格的文章總結如下

1、init初始化不會觸發layoutsubviews

但是是用initwithframe 進行初始化時,當rect的值不為cgrectzero時,也會觸發

2、addsubview會觸發layoutsubviews

3、設定view的frame會觸發layoutsubviews,當然前提是frame的值設定前後發生了變化

4、滾動乙個uiscrollview會觸發layoutsubviews

5、旋轉screen會觸發父uiview上的layoutsubviews事件

6、改變乙個uiview大小的時候也會觸發父uiview上的layoutsubviews事件

也就是說 旋轉螢幕是會觸發這個

layoutsubviews方法,但是 (這裡出現了問題 我也不知道為什麼,就是在使用ipad 的時候,我的自定義controller沒有用sb,新增了乙個自定義的uiview uiview 裡面重寫了layoutsubviews方法  當我切換的時候 ,很奇怪並沒有呼叫 ,查詢了很多但是還是沒有找到為甚?所以這個方法只適合iphone ,我朋友說的是ipad 如果是在7.0的話修改一下**可以判斷,但是在8.0以上就不行了 — - !);言歸正傳,如何去檢查是橫屏還是豎屏呢,在其他部落格裡面講的很好 獲取電池的方向來 判讀螢幕的方向。

-(void)layoutsubviews

else if(inte***ceorientation == uideviceorientationlandscapeleft || inte***ceorientation == uideviceorientationlandscaperight)

}

第二種就是 通過新增通知

在我們uiview上面新增乙個通知 uideviceorientationdidchangenotification 

螢幕改變的就會觸發。在通知的方法裡面新增上面的**即可

經過測試。。適用於iphone 和ipad 

ios鍵盤橫屏 iOS強制轉換橫豎屏和鍵盤方向控制

前言 在開發中,有時候我們回到這樣一種需求 從乙個豎屏介面跳轉到下乙個橫屏介面,或者反之。如果是安卓的話,就很簡單,安卓系統提供這樣的api,直接操作即可。但是ios就不好辦了,在ios3.0之前,系統還有乙個介面用來設定應用螢幕方向setorientation 但是ios3.0之後就被禁止了,成為...

關於ios6 0和5 0的橫豎屏支援方法

ios6.0中拋棄了 bool shouldautorotatetointe ceorientation uiinte ceorientation inte ceorientation的方法對橫豎屏切換的支援,ios6.0中的對橫豎切換的支援步驟為 第一info.plist中supportedint...

iOS 橫豎屏的切換以及個別介面橫屏

進入正文前先認識幾個概念 portrait 豎屏 home鍵在下邊 upside down 豎屏 home鍵在上邊 landscape 橫屏 landscape left 橫屏home鍵在左邊 landscape right 橫屏home鍵在右邊 1 先讓視窗支援橫豎屏 兩種方法可以修改視窗對橫豎屏...