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