查看全屏图片时解锁方向

时间:2016-06-02 12:06:36

标签: ios swift uitableview uiimageview orientation

我的UITableViewCell中有一个UIImageView。当用户点击UIImageView时,[IDMPhotoBrowser]会显示UIImageViewhttps://github.com/ideaismobile/IDMPhotoBrowser)。该应用程序仅为纵向,但是,当在IDMPhotoBrowser中查看全屏照片时,我想让用户能够旋转到任何方向。

IDMPhotoBrowser上显示了UITableViewCell's delegate。代表是常规UIViewControllerUITableView。该委托也包含在UINavigationController中,该UITabBarController包含在IDMPhotoBrowser中。我尝试了许多不同的解决方案,涉及扩展IDMPhotoBrowser并尝试添加添加对所有方向的支持的函数,我尝试在UITabBarControllerUINavigationControllerthe delegate UIViewController上展示UITabBarController IDMPhotoBrowser。我还尝试翻转位于IDMPhotoBrowser子类中的布尔值,然后在要求支持方向的函数中引用该布尔值,使得支持的方向相对于应用程序呈现AVPlayerViewController时的方式发生变化。没有任何效果。

除了用户在全屏中查看(uLongf*)&dstLendstLen时,整个应用都需要限制为纵向方向。

1 个答案:

答案 0 :(得分:1)

在UINavigationController(parent)中创建一个UINavigationController父类,以这种方式覆盖这些方法:

override func shouldAutorotate() -> Bool {
    return true
}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return self.topViewController.supportedInterfaceOrientations
}
你希望旋转VC中的

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return .All
}
在你的VC中

你不想被轮换:

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return .AllButUpsideDown
}

然后在此导航控制器中按下(或设置为root VC等)浏览器或浏览器的父VC。