在IOS應用中從豎屏模式強制轉換為橫屏模式

2021-07-24 20:00:51 字數 1208 閱讀 9064

在 iphone 應用裡,有時我們想強行把顯示模式從縱屏改為橫屏(反之亦然),cocoachina 會員 「alienblue」 為我們提供了兩種思路

第一種:通過人為的辦法改變view.transform的屬性。

具體辦法:

view.transform一般是view的旋轉,拉伸移動等屬性,類似view.layer.transform,區別在於view.transform是二維的,也就是使用仿射的辦法通常就是帶有字首cgaffinetransform的類(可以到api文件裡面搜尋這個字首的所有類),而view.layer.transform可以在3d模式下面的變化,通常使用的都是字首為catransform3d的類。

這裡要記住一點,當你改變過乙個view.transform屬性或者view.layer.transform的時候需要恢復預設狀態的話,記得先把他們重置可以使用view.transform = cgaffinetransformidentity,或者view.layer.transform = catransform3didentity,假設你一直不斷的改變乙個view.transform的屬性,而每次改變之前沒有重置的話,你會發現後來的改變和你想要的發生變化了,不是你真正想要的結果。

3.設定我們的view的中心點

cgpoint center = cgpointmake(frame.origin.x + ceil(frame.size.width/2), frame.origin.y + ceil(frame.size.height/2));

4.根據當前電池條的方向,獲取需要旋轉的角度的大小。通常

if (orientation == uiinte***ceorientationlandscapeleft) else if (orientation == uiinte***ceorientationlandscaperight) else if (orientation == uiinte***ceorientationportraitupsidedown) else

[uiview commitanimations];

第二種:通過setorientation:的辦法強制性的旋轉到乙個特定的方向。

//強制橫屏

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

在IOS應用中從豎屏模式強制轉換為橫屏模式

第一種 通過人為的辦法改變view.transform的屬性。具體辦法 view.transform一般是view的旋轉,拉伸移動等屬性,類似view.layer.transform,區別在於view.transform是二維的,也就是使用仿射的辦法通常就是帶有字首cgaffinetransform...

在應用中從豎屏模式強制轉換為橫屏模式

在 iphone 應用裡,有時我們想強行把顯示模式從縱屏改為橫屏 反之亦然 cocoachina 會員 alienblue 為我們提供了兩種思路 第一種 通過人為的辦法改變view.transform的屬性。具體辦法 view.transform一般是view的旋轉,拉伸移動等屬性,類似view.l...

在應用中從豎屏模式強制轉換為橫屏模式

在 iphone 應用裡,有時我們想強行把顯示模式從縱屏改為橫屏,兩種思路 第一種 通過人為的辦法改變view.transform的屬性。具體辦法 view.transform一般是view的旋轉,拉伸移動等屬性,類似view.layer.transform,區別在於view.transform是二...