然而,在iOS 8中,这个技巧不再奏效了.一方面,我通过实验发现,呈现视图控制器似乎不一定在容器视图中,所以我不能将这些约束添加到容器视图中. (“A Look Inside Presentation Controllers” 2014 WWDC video为“A Look Inside Presentation Controllers” 2014 WWDC video不会将展示视图控制器放在那里)看起来,使用自动布局或自动调整大小的方式使显示的视图控制器填充容器视图将会起作用,但是我发现容器视图本身可能会在通话状态栏消失时(iOS 7中不是这样),仍然保持下降20点.
我一直在玩“A Look Inside Presentation Controllers” sample code,但即使这个代码也没有正确处理通话状态栏. (我仍然试图得到一个处理新的UIPresentationController API,顺便说一句.)
解决方法 为我工作的是为UIApplicationWillChangeStatusbarFrameNotification添加一个观察者,然后找到TransitionContext.containerVIEw()并更新框架.我注意到当查看调试时,当回到正常的状态栏高度时,TransitionContext.containerVIEw()框架没有被更新.func willChangeStatusbarFrame(notification: NSNotification){ if let userInfo = notification.userInfo { if let value = userInfo[UIApplicationStatusbarFrameUserInfoKey] as? NSValue { let statusbarFrame = value.CGRectValue() let TransitionVIEw = UIApplication.sharedApplication().delegate!.window!!.subvIEws.last! as UIVIEw var frame = TransitionVIEw.frame frame.origin.y = statusbarFrame.height-20 frame.size.height = UIScreen.mainScreen().bounds.height-frame.origin.y UIVIEw.animateWithDuration(0.35) { TransitionVIEw.frame = frame } } }}总结
以上是内存溢出为你收集整理的iOS 8中自定义呈现的视图控制器的在线状态栏(双高)状态栏如何进行布局?全部内容,希望文章能够帮你解决iOS 8中自定义呈现的视图控制器的在线状态栏(双高)状态栏如何进行布局?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)