iphone - 通话中状态栏如何影响 ViewController View 大小?

标签 iphone uitabbarcontroller statusbar in-call

我试图了解 view 如何关联到UITabBarController , UINavigationControllerUIViewController当通话状态栏切换时使用react。
我的问题是它们的行为似乎不同,这会给我带来副作用。

我制作了一个项目,用于更改上述 3 种类型的窗口的 Root View Controller ,并转储 description view的获取框架坐标。

<小时/>
  • <strong>UIViewController</strong>

enter image description here

通话状态关闭:

UIView: 0x4e2a1f0; frame = (0 20; 320 460); autoresize = W+H; ....
开启
UIView: 0x4e2a1f0; frame = (0 40; 320 440); autoresize = W+H; ...

我的理解是:当通话状态栏出现时,UIViewController的 View 高度缩小并失去20,并且其y坐标从20移动到40。

太完美了!我希望在更换经典 UIViewController 时也能得到同样的结果与 UITabBarControllerUINavigationController但事实并非如此!

<小时/>
  • <strong>UINavigationController</strong>

    enter image description here

通话中状态栏关闭

UILayoutContainerView: 0x4b35ab0; frame = (0 0; 320 480); autoresize = W+H; ..
开启
UILayoutContainerView: 0x4e1b060; frame = (0 0; 320 480); autoresize = W+H; ..

在这种情况下,当通话中状态栏切换时,UINavigationController 处理的 View 的框架属性不会更改?! (为什么?:()

<小时/>
  • <strong>UITabBarController</strong>

enter image description here 关闭

UIView: 0x4b2f6a0; frame = (0 20; 320 460); autoresize = W+H; ...
开启
UIView: 0x4b2f6a0; frame = (0 20; 320 460); autoresize = W+H; ...

UINavigationController中的相同:view UITabBarController的切换通话状态栏时似乎不会受到影响。

<小时/>

有人可以解释一下在显示通话状态栏时调整大小是如何工作的吗?
我的最终目标是显示 UIView显示在上方整个UITabBarController并且在显示通话状态时会正确调整大小。但是,我真的不知道将这样的 View 放在 View 层次结构中的哪里:如果我将其添加为 UITabBarController View 的 subview ,因为这个 View 不会对调用状态显示使用react,所以我的 View 也不会使用react: (

最佳答案

切换通话状态栏时 View 的高度取决于其锚定方式。

使用 UIView 的 autoResizingMask 来控制当通话状态栏显示时 View 是否应该向下移动或调整大小。

这两个属性,

UIViewAutoresizingFlexibleTopMargin
UIViewAutoresizingFlexibleHeight  

会帮助你的。第一个将 View 向下推,第二个改变大小。

关于iphone - 通话中状态栏如何影响 ViewController View 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5486491/

相关文章:

ios - 在没有开发者计划计划的情况下,我是否需要 iOS 9 或更高版本才能在 iPhone 上测试应用程序?

iphone - 覆盖 UITableView 上的滑动手势

javascript - 如果在 html 中启用了 javascript,则无法获取 Controller 模型属性

ios - 添加状态栏后导航栏未重新定位

iphone - 创建 "Add" View Controller 的最佳方法

iphone - 是否有流行的 iOS Twitter 客户端列表及其用于关注和发推文的自定义 URL 方案?

iphone - 第二次点击按钮不起作用

iphone - 应用程序中任何位置的持久 View

iphone - 通过标签栏访问 MKMapView

android - 状态栏覆盖图像在 android 中下移了