当我隐藏它时,为什么状态栏会向我的图像滑回20点?
调用UIImagePickerController
时似乎存在错误。 即使它不应该显示状态栏。
要解决使用子类化的问题:
class MyImagePickerController: UIImagePickerController { override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) self.setNeedsStatusBarAppearanceUpdate() } override func prefersStatusBarHidden() -> Bool { return true } override func childViewControllerForStatusBarHidden() -> UIViewController? { return nil; } }
我使用此代码显示照片库:
let picker = MyImagePickerController() picker.allowsEditing = false picker.sourceType = .SavedPhotosAlbum picker.modalPresentationStyle = .Popover self.presentViewController(picker, animated: true, completion: nil) picker.popoverPresentationController?.sourceRect = CGRectMake(0,0,0,0) picker.popoverPresentationController?.sourceView = self.view
但是,状态栏会被隐藏,但它会通过约20个点的约束来滑动连接到视图的图像。 我该如何解决这个问题?
我设法通过控制imagePickerController中的导航栏来解决这个问题。 这可能适合您,但它将取决于您的问题的精确上下文(即在显示imagePicker之前的视图层次结构状态)。
与我之前的解决方案一样 ,您inheritance了UIImagePickerController。 这又是UINavigationController的子类,所以你可以得到它的导航栏。
class WNImagePickerControllerSwift: UIImagePickerController { override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) self.setNeedsStatusBarAppearanceUpdate() } override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) self.setNavBar() } override func prefersStatusBarHidden() -> Bool { self.setNavBar() return true } override func childViewControllerForStatusBarHidden() -> UIViewController? { return nil; } func setNavBar() -> Void { self.setNavBar(65) } func setNavBar(height: CGFloat) -> Void { var frame = self.navigationBar.frame; frame.size.height = height; self.navigationBar.frame = frame; } }
必须在这两个地方调用prefersStatusBarHidden
– 一次在动画转换之前调用prefersStatusBarHidden
,并在转换之后再次调用。 如果直接在viewWillAppear
调用它,它将无法工作。
无论如何,它值得一试,玩这个神奇的数字65以适应你所追求的导航高度。
在编辑图像时,我正在努力解决这个20偏移。 这对我来说似乎也是一个错误。
唯一对我info.list
是在info.list
,将View controller-based status bar appearance
为YES
。 检查你是否有这个设置。
然后,如果要修改某些视图控制器中的状态栏,请转到更改它所需的每个视图控制器。
- 基于背景图像的文本颜色
- 单元测试和使用旧版代码
- 将图像上传到PHP服务器
- 使用AutoLayout与Storyboard(不带XIB)的UICollectionViewCell的宽度和高度可变
- 在UILocalizedIndexedCollation的sectionForObject中select器的作用是什么:(id)object collationStringSelector:(SEL)selector method
- RestKit:如何手动设置托pipe对象属性的值?
- iOS屏幕上显示FPS(无仪器)
- 如何检测发送到其他应用程序的推送通知?
- 什么types的应用程序允许在iPhone中自动启动?