欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

ios開(kāi)發(fā)橫屏,ios開(kāi)發(fā)鎖定橫屏

iOS橫豎屏要點(diǎn)與橫屏返回問(wèn)題

主要下面三個(gè)方法

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),金水網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:金水等地區(qū)。金水做網(wǎng)站價(jià)格咨詢:028-86922220

1、當(dāng)前viewController是window的rootViewController.

2、當(dāng)前viewController是modal模式的. 即, 此viewController是被調(diào)用

presentModalViewController 而顯示出來(lái)的.

對(duì)于非modal模式的viewController:如果不是rootViewController,則重寫(xiě) supportedInterfaceOrientations , preferredInterfaceOrientationForPresentation 以及 shouldAutorotate 方法, 按照當(dāng)前viewController的需要返回響應(yīng)的值.如果是rootViewController,則如下重寫(xiě)方法:

這樣就繞開(kāi)了UIKit只調(diào)用rootViewController的方法的規(guī)則. 把決定權(quán)交給了當(dāng)前正在顯示的viewController.

對(duì)于modal

模式的viewController. 則按照需要重寫(xiě)supportedInterfaceOrientations,

preferredInterfaceOrientationForPresentation

以及shouldAutorotate 方法即可.

TIPS:

[UIViewController attemptRotationToDeviceOrientation]; 可以重新調(diào)用以上的方法。

雖然A界面不支持橫屏,但是如果下個(gè)B界面支持橫屏,B在橫屏模式返回的話,A也變橫屏了。這里有個(gè)簡(jiǎn)單的設(shè)值方法

A界面也重寫(xiě)方法即可

重寫(xiě)

有時(shí)候想自己控制橫豎屏 ,比如視圖播放界面。

setOrientation 在iOS3以后變?yōu)樗接蟹椒耍荒苤苯尤フ{(diào)用此方法,否則后果就是被打回。

不能直接調(diào)用,但是可以間接的去調(diào)用,下面的方法就是利用 KVO機(jī)制去間接調(diào)用.

iOS:強(qiáng)制橫屏的坑

前段時(shí)間我們播放器強(qiáng)制橫屏,項(xiàng)目設(shè)置允許豎屏,在手機(jī)不鎖屏狀態(tài)下,手機(jī)橫屏?xí)?dǎo)致播放器強(qiáng)制橫屏的時(shí)候會(huì)導(dǎo)致橫屏失敗,下面是強(qiáng)制橫屏的解決辦法以及我的探究.

首先,在【General】--【Device Orientation】設(shè)置僅支持豎屏

接下來(lái)在AppDelegate中設(shè)置

先設(shè)置

接下來(lái)有兩種辦法可以在某個(gè)界面設(shè)置強(qiáng)制橫屏

第一種.先把設(shè)備狀態(tài)設(shè)置為豎屏,再?gòu)?qiáng)制橫屏

第二種.設(shè)置強(qiáng)制橫屏,再調(diào)用

這樣就解決手機(jī)不鎖屏狀態(tài)下的強(qiáng)制橫屏導(dǎo)致的問(wèn)題,但是為什么產(chǎn)生這些問(wèn)題呢,請(qǐng)看下我接下來(lái)的探究.

接下來(lái)說(shuō)下橫屏失敗的原因:

用戶先向左轉(zhuǎn)了設(shè)備的方向才點(diǎn)擊橫屏,在強(qiáng)制頁(yè)面向右(也就是設(shè)備向左)橫屏?xí)r,雖然項(xiàng)目是只允許豎屏的,屏幕界面方向也一直是豎屏的,但設(shè)備本身的方向(也就是[UIDevice currentDevice].orientation)其實(shí)已經(jīng)是向左,此時(shí)其實(shí)kvc強(qiáng)制設(shè)置的值和本來(lái)的值是一樣的,這就導(dǎo)致了屏幕界面不轉(zhuǎn)動(dòng),所以可以先強(qiáng)制轉(zhuǎn)到另一個(gè)方向再轉(zhuǎn)回來(lái),或者使用attemptRotationToDeviceOrientation方法使屏幕界面和設(shè)備方向同步。其他方向同理,另外,若用戶啟用了設(shè)備方向鎖,用戶無(wú)論如何旋轉(zhuǎn)設(shè)備其設(shè)備方向都不變,也就不會(huì)有此問(wèn)題。

下面是我的思路:

在屏幕沒(méi)有鎖定的時(shí)候,手機(jī)為橫屏的時(shí)候,播放器橫屏?xí)r候沒(méi)有橫屏

但是播放器界面并沒(méi)有變?yōu)槿?根據(jù)效果我覺(jué)得有可能是寬高問(wèn)題導(dǎo)致的,因此我先獲取手機(jī)的屏幕方向

在獲取手機(jī)的設(shè)備方向

發(fā)現(xiàn)屏幕方向和設(shè)備方向不一致

接下來(lái)使屏幕方向和設(shè)備方向一致,就可以解決問(wèn)題

參考文章

iOS 獲取屏幕方向

iOS 自定義UIWindow 橫屏?xí)r適配問(wèn)題

當(dāng)自定義一個(gè)UIWindow,并在window添加控件,橫屏?xí)r,window并沒(méi)有跟隨視圖旋轉(zhuǎn)。

解決方法1:(蘋(píng)果推薦這樣使用)

1.定義一個(gè)UIViewController,并設(shè)置為當(dāng)前Window的rootViewController,將控件添加到自定義的UIViewController上,調(diào)用時(shí)使用self.mineWindow.mineRootViewController.button...

2.在自定義的UIViewController中添加橫屏方法:

- (BOOL)shouldAutorotate {

returnYES;

}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {

return UIInterfaceOrientationMaskLandscape;

}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {

return UIInterfaceOrientationLandscapeRight;

}

解決方法2:

對(duì)UIWindow進(jìn)行旋轉(zhuǎn)(UIWindow繼承自UIView):

UIInterfaceOrientation orientation = [[UIApplication sharedApplication]statusBarOrientation];

if (orientation == UIInterfaceOrientationLandscapeLeft) {

CGAffineTransform rotation = CGAffineTransformMakeRotation(3*M_PI/2);

[self setTransform:rotation];

}

if (orientation == UIInterfaceOrientationLandscapeRight) {

CGAffineTransform rotation = CGAffineTransformMakeRotation(M_PI/2);

[self setTransform:rotation];

}

如有不當(dāng)之處請(qǐng)@我。

iOS開(kāi)發(fā) 橫豎屏切換問(wèn)題

在你想支持橫豎屏的viewController里面重寫(xiě)兩個(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)以下問(wèn)題:

你的navigationController只支持豎屏,但是你push到了某個(gè)新的controller中,這個(gè)controller支持橫豎屏,當(dāng)你在新的controller中切換到橫屏后(也有可能在切換到橫屏然后pop回來(lái)后),這時(shí)候程序會(huì)閃退,因?yàn)槟愕膎avigationController不支持橫屏。

如果你想解決這個(gè)問(wèn)題,就需要自己寫(xiě)一個(gè)UINavigationController的子類,在這個(gè)類中重寫(xiě)方法:

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è)問(wèn)題了。

ios開(kāi)發(fā)iphone6橫屏啟動(dòng)圖怎么設(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顯示模式更改方法

激活蘋(píng)果6手機(jī)時(shí),會(huì)讓你選擇顯示模式,如果要更改就看下面的步驟。

1、點(diǎn)擊主屏上的“設(shè)置”

2、在設(shè)置選項(xiàng)列表中找到“顯示與亮度”。

3、點(diǎn)擊“顯示模式”

4、選擇“放大”或者“標(biāo)準(zhǔn)”模式

5、切換不同的顯示模式之后需要重啟蘋(píng)果手機(jī)才能生效

標(biāo)題名稱:ios開(kāi)發(fā)橫屏,ios開(kāi)發(fā)鎖定橫屏
本文網(wǎng)址:http://chinadenli.net/article27/dsedejj.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)企業(yè)網(wǎng)站制作搜索引擎優(yōu)化面包屑導(dǎo)航網(wǎng)站收錄微信小程序

廣告

聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)