CGRect fullWindowRect = [UIScreen mainScreen].applicationFrame;是获得可用rect的一种简单方法,但不包括状态栏。随着iPad和iPhones在这些基本系统指标上的差异越来越大,我希望在UINavigationBar就位时不再减去44来获得屏幕高度。重要的是定位物体,使它们与屏幕底部偏移自己的高度,即与屏幕底部对齐。
神奇的功能是什么,当然你不应该只是为两个(或更多)可能的导航栏高度设置常量,并记住什么时候应用它们?我在这里或其他地方找不到答案,但我经常找到"44“。
发布于 2010-06-04 14:56:05
CGFloat navHeight = self.navigationController.navigationBarHidden ? 0 :
self.navigationController.navigationBar.frame.size.height;发布于 2010-06-04 15:28:51
切勿使用硬编码,如'44',因为它不遵循‘兼容性规则’。没人知道下一代iPhone会有什么样的“状态栏”。
除了计算状态栏或导航栏的确切高度外,还可以使用以下内容:
[[UIScreen mainScreen] bounds];
[[UIScreen mainScreen] applicationFrame];发布于 2014-05-09 14:21:29
我认为当导航栏出现时,您正在尝试查找可用的框架。我只需将applicationFrame的原点向下移动,并将高度减小相同的量
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
appFrame.origin.y += self.navigationController.navigationBar.frame.size.height;
appFrame.size.height -= self.navigationController.navigationBar.frame.size.height;像个魔法师一样工作
https://stackoverflow.com/questions/2971937
复制相似问题