蘋果手機橫屏操作步驟:
創(chuàng)新互聯(lián)"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機版的企業(yè)網(wǎng)站。實現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)具備承接各種類型的成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)項目的能力。經(jīng)過十余年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評。
工具/原料:蘋果13、ios15.1、設(shè)置1.0。
1、首先解鎖手機屏幕,沿著屏幕從底部往上滑動。
2、然后點擊鎖定圖標,這時鎖定圖標變成紅色說明豎排方向鎖定打開,這時手機就沒有辦法自動旋轉(zhuǎn)成橫屏。
3、最后點擊鎖定圖標,這時鎖定圖標變成白色說明豎排方向鎖定關(guān)閉,這時手機就可以自動旋轉(zhuǎn)成橫屏。
背景: app內(nèi)有一個雙頁的界面,然后某天運營說如果其中一頁能支持橫屏的話,對接的媒體就能給一整塊屏幕,然后需求就這樣下來了(雙頁:一頁支持橫屏效果,另一頁不支持)。
接下來就?是查文檔時間了,Duang,一下就查到了有沒有,就是下面這兩個方法。
//支持設(shè)備自動旋轉(zhuǎn)
//支持橫豎屏顯示
然后發(fā)現(xiàn)單純這兩個方法并沒有什么用,因為看文檔發(fā)現(xiàn)這個需要設(shè)置在根視圖中,具體說明如下:
也就是說到目前為止這兩個方法是全局設(shè)置的(打斷點發(fā)現(xiàn)其實是每個視圖進行屏幕旋轉(zhuǎn)時都會去根視圖里請求這個方法),好吧,接著查,終于讓我查到了解決方法。在根視圖中還是繼續(xù)調(diào)用這兩個方法,但是shouldAutorotate方法稍微改動了一下,意思就是讓系統(tǒng)再去當前顯示的那個VC中去問應(yīng)不應(yīng)該允許屏幕旋轉(zhuǎn)。
接下來就可以在想要支持設(shè)備旋轉(zhuǎn)的VC里重寫這兩個方法了。
到這里其實指定視圖的屏幕自動旋轉(zhuǎn)其實就實現(xiàn)了,可是需求提的是在當前這個VC中兩個頁面一個支持旋轉(zhuǎn)一個不支持旋轉(zhuǎn),所以便加上了一個BOOL屬性值來判斷地圖頁面是否展示,如果展示就支持旋轉(zhuǎn)。
功能實現(xiàn)了,接下來是頁面適配。現(xiàn)在屏幕旋轉(zhuǎn)過來完全無法直視啊,視圖只展示在了屏幕左面的一小部分,接著去找解決方法。發(fā)現(xiàn)在屏幕旋轉(zhuǎn)時系統(tǒng)會拋出來一個通知:
接下來在回調(diào)方法里面重新設(shè)置一下各個視圖的frame就可以了,還有就是應(yīng)該在各個View的layoutSubviews里面判斷一下,為橫豎屏分別寫一下視圖坐標。
最后一個需求,屏幕方向的手動設(shè)置(因為一個界面支持橫屏,如果在橫屏模式下切回另一個只支持豎屏的界面就會出現(xiàn)問題,所以需要在切回之前重新設(shè)置下屏幕方向)。
這里吐槽一下,真的一定要吐槽一下,在百度上搜了半天,也可能是我搜索的方式有問題吧,告訴我的都是那個已經(jīng)被蘋果私有化的那個方法,然后果斷Stack Overflow,果斷秒解決。
OK,到這里需求就完全實現(xiàn)了,另外說一下全局設(shè)置的方法,之前最上面的那個算一種,然后也可以在TARGETS設(shè)置里面勾選,也可以在AppDelegate中設(shè)置。
最后一點就是其實還有一種偽屏幕旋轉(zhuǎn),其實就是設(shè)置View的transform來旋轉(zhuǎn)一定的角度,不過這個方法計算坐標實在是太傷腦筋了,感興趣的可以自己試試。
1、iPhone6 Plus共有兩種顯示模式,分別為標準和放大模式官網(wǎng) 留言只有在“標準模式”下,才支持橫屏。所以要確保顯示模式在標準模式狀態(tài)下。
2、在控制中心將“方向鎖定”關(guān)閉即可讓iPhone Plus在手機橫放時自動變成橫屏顯示。
iPhone6 Plus顯示模式更改方法
激活蘋果6手機時,會讓你選擇顯示模式,如果要更改就看下面的步驟。
1、點擊主屏上的“設(shè)置”
2、在設(shè)置選項列表中找到“顯示與亮度”。
3、點擊“顯示模式”
4、選擇“放大”或者“標準”模式
5、切換不同的顯示模式之后需要重啟蘋果手機才能生效
在你想支持橫豎屏的viewController里面重寫兩個方法:
1
2
3
4
5
6
7
8
9
10
11
// 支持設(shè)備自動旋轉(zhuǎn)
- (BOOL)shouldAutorotate
{
return YES;
}
// 支持橫豎屏顯示
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
這樣在這個viewController中就可以橫豎屏切換了。
注意如果你window的rootViewController是一個navigationController,可能會出現(xiàn)以下問題:
你的navigationController只支持豎屏,但是你push到了某個新的controller中,這個controller支持橫豎屏,當你在新的controller中切換到橫屏后(也有可能在切換到橫屏然后pop回來后),這時候程序會閃退,因為你的navigationController不支持橫屏。
如果你想解決這個問題,就需要自己寫一個UINavigationController的子類,在這個類中重寫方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
- (BOOL)shouldAutorotate
{
return [self.viewControllers.lastObject shouldAutorotate];
}
- (NSUInteger)supportedInterfaceOrientations
{
return [self.viewControllers.lastObject supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [self.viewControllers.lastObject preferredInterfaceOrientationForPresentation];
}
然后用這個類去創(chuàng)建實例作為window的rootViewController,這樣就可以避免這個問題了。
iOS13,橫屏啟動app效果如下圖:
查看ui結(jié)構(gòu)圖發(fā)現(xiàn),其實他是橫屏的
在iOS 13以下系統(tǒng),正常顯示
???不知道是不是 uiwindowScence導致,查看了下api,沒發(fā)現(xiàn)控制方向的方法
臨時解決方案:
將項目不支持多window形式,刪除 SceneDelegate
哪位同學有好的解決方案,???? 不吝賜教
你只需要修改info.plist 文件就可以了。找到"Supported interface orientations" 設(shè)置item 項為Portrait就可以了。這個設(shè)置為全局設(shè)置。