IOS橫屏豎屏問題

2021-12-29 20:41:28 字數 1148 閱讀 4301

引言:

iphone的橫屏豎屏針對ios系統版本分為兩種開發方式: 一種是ios 6之前的使用模式 一種是ios6的新模式. 兩者的區別還是蠻大的.  

使用:支援自動旋轉?

ios6之前通常使用 shouldautorotatetointe***ceorientation 來單獨控制某個uiviewcontroller的方向,需要哪個viewcontroller支援旋轉,只需要重寫shouldautorotatetointe***ceorientation方法。如下示例,設定以後,螢幕被旋轉時只支援橫屏轉換:

[csharp]  

- (bool)shouldautorotatetointe***ceorientation:(uiinte***ceorientation)inte***ceorientation  

ios6之後使用如下兩個方法控制自動旋轉,分別是:

[csharp]   

- (bool)shouldautorotate  

- (nsuinteger)supportedinte***ceorientations    

那麼在自動旋轉觸發後,系統會自動呼叫另外兩個方法:

[csharp]  

- (void)willrotatetointe***ceorientation:(uiinte***ceorientation)tointe***ceorientation duration:(nstimeinterval)duration  

- (void)didrotatefrominte***ceorientation:(uiinte***ceorientation)frominte***ceorientation    

2:讓程式第一次啟動時立刻顯示橫屏還是豎屏的方式 此處

如果是ios6之前,下面設定的裝置支援方向可在應用裡面再被修改

如果是ios6以後,會做為硬性條件,也就是如果設定了以後,應用裡面的**也無法再使用這個方向  

3:傳說中的私有api實現切換viewcontroller強制橫屏的方式

[csharp] 

if ([[uidevice currentdevice] respondstoselector:@selector(setorientation:)])  

4:使用xib進行介面設計時,改變xib的橫豎顯示方式

橫屏豎屏切換

當用n85 n95的時候,可以橫屏豎屏切換。當切換的時候,就要把程式中的控制項位置 大小重新計算,重新畫了。其實也沒有什麼困難的。1.這根據原始螢幕 240 320 的螢幕計算座標。當橫屏豎屏切換的時候,可以用下面的公式進行自動的拉伸。define calc wh a a rect width 24...

android 橫屏豎屏判斷

方法1 displaymetrics dm new displaymetrics getwindowmanager getdefaultdisplay getmetrics dm int width dm.widthpixels int height dm.heightpixels 方法2 if t...

手機橫屏豎屏css

media是css3中新定義的,功能非常強大,顧名思義pc是無法匹配橫豎屏的,所以orientation只對移動裝置起效。1.頭部宣告 複製 如下 加到複製 如下 2.media匹配螢幕是橫屏還是豎屏 複製 如下 media all and orientation landscape media a...