自动将肖像倒置旋转为iphone X的肖像?
Posted
技术标签:
【中文标题】自动将肖像倒置旋转为iphone X的肖像?【英文标题】:Auto rotate portrait upside down to portrait for iphone X? 【发布时间】:2017-10-30 07:06:15 【问题描述】:由于iPhone X 不支持portrait upside down
的方向。当用户将手机的方向更改为portrait upside down
for iPhone X 时,有没有办法自动将方向旋转为portrait
?
我正在使用这个扩展来支持all
方向,但我研究了很多,不知道如何实现上述场景
extension UINavigationController
override open var supportedInterfaceOrientations : UIInterfaceOrientationMask
return .all
【问题讨论】:
你为什么不检查这个答案。这与使用 GBDeviceInfo 框架获取电话详细信息有关,可能该框架可能已针对 iPhone X 进行了更新***.com/questions/24059327/… 【参考方案1】:只是在这里为您复制@BeslanTularov 的答案。
您应该使用GBDeviceInfo框架或... P>
苹果定义的:
public enum UIUserInterfaceIdiom : Int
case unspecified
case phone // iPhone and iPod touch style UI
case pad // iPad style UI
@available(ios 9.0, *)
case tv // Apple TV style UI
@available(iOS 9.0, *)
case carPlay // CarPlay style UI
所以对于设备的严格定义可以使用这段代码
struct ScreenSize
static let SCREEN_WIDTH = UIScreen.main.bounds.size.width
static let SCREEN_HEIGHT = UIScreen.main.bounds.size.height
static let SCREEN_MAX_LENGTH = max(ScreenSize.SCREEN_WIDTH, ScreenSize.SCREEN_HEIGHT)
static let SCREEN_MIN_LENGTH = min(ScreenSize.SCREEN_WIDTH, ScreenSize.SCREEN_HEIGHT)
struct DeviceType
static let IS_IPHONE_4_OR_LESS = UIDevice.current.userInterfaceIdiom == .phone && ScreenSize.SCREEN_MAX_LENGTH < 568.0
static let IS_IPHONE_5 = UIDevice.current.userInterfaceIdiom == .phone && ScreenSize.SCREEN_MAX_LENGTH == 568.0
static let IS_IPHONE_6_7 = UIDevice.current.userInterfaceIdiom == .phone && ScreenSize.SCREEN_MAX_LENGTH == 667.0
static let IS_IPHONE_6P_7P = UIDevice.current.userInterfaceIdiom == .phone && ScreenSize.SCREEN_MAX_LENGTH == 736.0
static let IS_IPAD = UIDevice.current.userInterfaceIdiom == .pad && ScreenSize.SCREEN_MAX_LENGTH == 1024.0
static let IS_IPAD_PRO = UIDevice.current.userInterfaceIdiom == .pad && ScreenSize.SCREEN_MAX_LENGTH == 1366.0
如何使用强>
if DeviceType.IS_IPHONE_6P_7P
print("IS_IPHONE_6P_7P")
以检测IOS版本强>
struct Version
static let SYS_VERSION_FLOAT = (UIDevice.current.systemVersion as NSString).floatValue
static let iOS7 = (Version.SYS_VERSION_FLOAT < 8.0 && Version.SYS_VERSION_FLOAT >= 7.0)
static let iOS8 = (Version.SYS_VERSION_FLOAT >= 8.0 && Version.SYS_VERSION_FLOAT < 9.0)
static let iOS9 = (Version.SYS_VERSION_FLOAT >= 9.0 && Version.SYS_VERSION_FLOAT < 10.0)
如何使用强>
if Version.iOS8
print("iOS8")
【讨论】:
也许您可以尝试将特定于肖像的代码倒置在此代码中 您是否尝试过使用屏幕高度作为选项。考虑到每部手机都有特定的屏幕高度,您可以尝试使用这种方式解决这个问题。这个链接有关于一些信息是***.com/questions/46192280/… SPAN>以上是关于自动将肖像倒置旋转为iphone X的肖像?的主要内容,如果未能解决你的问题,请参考以下文章
人脸检测在 FirebaseMLVision 中无法正常工作 iPhone X 肖像?
将 iPhone X 旋转为横向时,封面图像的左侧和下方出现空白