- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用仅通过 supportedInterfaceOrientation
属性支持横向方向。
使用 iOS 6 之前的 iOS,我的应用程序可以通过 presentViewController:animated:completion:
成功加载 UIImagePickerController
实例,即使 UIImagePickerController
code> 本身只支持纵向。
图像选择器只是向用户展示其侧面。用户旋转手机,选择图像,然后旋转回横向。
在 iOS 6.0 下,使用 UIImagePickerController
实例调用 presentViewController:animated:completion:
会使应用程序崩溃。我可以通过向我的 supportedInterfaceOrientation
属性添加纵向选项来防止崩溃。
但是,纵向操作对于我的应用程序来说确实没有意义。我原以为我可以使用shouldAutorotateToInterfaceOrientation来允许应用程序“支持纵向”,但只允许在这一个 View 中旋转到纵向。但现在该方法已被弃用,并且我无法对 shouldAutorotate 使用相同的技术。
有人知道如何在 iOS 6.0 下解决这个问题吗?
最佳答案
从 iOS 6.1 开始,这种情况不再发生,为了避免在 iOS 6.0.x 下崩溃,遵循我的提示非常重要,以下内容仍然适用。
<小时/>这实际上是 iOS 6.0 中的一个错误,应该在未来的 iOS 版本中修复。
Apple 的一位工程师在这里解释了这个错误和解决方法:https://devforums.apple.com/message/731764
发生这种情况是因为应用程序仅需要横向方向,但某些 Cocoa Touch View Controller 要求严格纵向方向,这是错误 - 并不是说它们应该要求比纵向更多的内容,而是它们对应用程序要求的解释。
示例如下:
iPad app supporting landscape only displays a UIImagePickerController via a UIPopoverController. The UIImagePickerController requires Portrait orientation, but the app is forcing landscape only. Error and... crash
其他被报告有问题的框架包括游戏中心登录 View Controller 。
解决方法非常简单,但并不理想...您保留在 info.plist/project 信息 Pane 中声明的正确方向,但在应用程序委托(delegate)类中您声明允许所有方向。
现在,添加到窗口的每个 View Controller 都必须指定自己只能是横向。请检查链接以了解更多详细信息。
<小时/>我无法强调您不应该对 UIImagePickerController 进行子类化,因为公认的解决方案坚持要求您这样做。
这里重要的是“此类旨在按原样使用,不支持子类化。”
<小时/>在我的例子中,我将其添加到我的应用程序的委托(delegate)中(我有一个仅横向的应用程序),这告诉图像选择器它可以显示,因为支持纵向:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
return UIInterfaceOrientationMaskAll;
}
然后在我的 View Controller (恰好是 UINavigationController
)中,我包含了一个具有以下内容的类别:
- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}
现在我的应用程序不旋转,图像选择器询问代理是否可以显示为肖像,并被告知可以。所以一切都进展顺利。
关于orientation - 在 iOS 6.0 下呈现 UIImagePickerController 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12522491/
我有一个 UIImagePickerController 和一个 cameraOverlayView,但是当用户拍照时,cameraOverlay View 会保留在“预览/使用照片/重拍照片 Vie
我试过将 Info.plist 'View controller-based status bar appearance' 设置为 NO,我试过调用 [[UIApplication sharedApp
我正在尝试快速使用 UIImagePickerController 但不起作用... 我的 View Controller : class ViewController: UIViewControll
我的 UIImagePickerController 有问题,allowEditing = YES。 我无法从底部裁剪图像,但在移动裁剪矩形时,顶部还有一个额外的空白空间。 也在方法中。 -(void
为什么当 UIImagePickerController 处于视频模式时,AVFoundation 显示的缩放级别与 UIImagePickerController 相同?如何使 AVFoundati
我正在开发一个应用程序,我必须使用图像选择器 Controller 从手机库导入图像。问题是我必须首先关闭选择器 Controller ,然后在选择器 Controller 关闭后呈现另一个 Cont
我的以下代码在 swift 4 上运行良好,但在升级到 swift 4.2 后出现此错误,我浪费了 3 个小时搜索问题所在但失败了。如果有人能指导我如何解决这个问题,请多多指教。 func image
所以我正在尝试为 iOS 7 更新一个应用程序,但我遇到了自定义叠加层的问题。叠加层是我用来构图的图像(实时和使用全分辨率版本在相机胶卷中构图最终结果)。问题是,现在在 iOS 7 下,覆盖层虽然在底
我正在使用 UIImagePickerController 捕获图像然后存储它。但是,当我尝试重新缩放它时,我从该图像中获得的方向值不正确。当我拿起手机拍照时,它给了我左边的方向。有没有人遇到过这个问
我注意到 UIImagePicker 为相机胶卷返回的 NSDictionary 似乎不再返回 UIImagePickerControllerOriginalImage 对象。相反,我得到了一个 UI
我有一个简单的标准图像选择器,它工作正常,但当我使用编辑器功能时,图像会移动到方形裁剪框上方。当我选择图像或调整图像大小然后接受它时,裁剪后的图像在裁剪框上方有大约 20 个像素的图像,底部有大约 4
我的应用程序允许用户从设备的相机胶卷中选择图像。我想验证所选图像的格式是 PNG 或 JPG 图像。 是否可以在 - (void)imagePickerController:(UIImagePicke
是否可以保存视频并将其添加到自定义 ALAsset,以 mp4 格式从 UIImagePicker 捕获?或者我必须将它保存在 .mov 中并通过 AVAssetExportSession 进行压缩?
似乎内置的 UIImagePickerController 无法接受除设备相机卷以外的来源。 我想在我自己的应用程序中获得选择和放大图片的功能。另外我想允许用户选择图片并将其保存到他们的相机胶卷中(以
我想在呈现 UIImagePickerController 拍照时隐藏显示快门打开的动画。我检查了this question对于包含已接受的内容的相同内容,但我无法在我的 Controller 中复制
我想 UIImagePickerController 会允许您使用相机或从 View 中的库中进行选择?看来我必须选择一个或另一个 cia 的 sourceType?有没有办法在选择库 View 中添
我试图在 UIActionSheet 中单击按钮后显示 UIImagePickerController。代码很简单。但是,对 [[UIImagePickerController alloc] init
我搜索了一些在我的应用程序中使用 UIImagePickerController 的方法,我发现唯一有效的方法如下: 在应用程序显示的第一个 View 上,输入: self.picker = [[UI
UIImagePickerController 很容易使用,但是当我以前没有发现它时,我突然发现它很令人恼火。发生的情况是,有时 imagePickerController:didFinishPick
我有以下代码: SecondViewController *secondView = [[SecondViewController alloc] initWithNibName:@"SecondVie
我是一名优秀的程序员,十分优秀!