首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UINavigationBar与可用屏幕面积的计算

UINavigationBar与可用屏幕面积的计算
EN

Stack Overflow用户
提问于 2010-06-04 14:25:25
回答 3查看 5.3K关注 0票数 2
代码语言:javascript
复制
CGRect fullWindowRect = [UIScreen mainScreen].applicationFrame;

是获得可用rect的一种简单方法,但不包括状态栏。随着iPad和iPhones在这些基本系统指标上的差异越来越大,我希望在UINavigationBar就位时不再减去44来获得屏幕高度。重要的是定位物体,使它们与屏幕底部偏移自己的高度,即与屏幕底部对齐。

神奇的功能是什么,当然你不应该只是为两个(或更多)可能的导航栏高度设置常量,并记住什么时候应用它们?我在这里或其他地方找不到答案,但我经常找到"44“。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-04 14:56:05

代码语言:javascript
复制
CGFloat navHeight = self.navigationController.navigationBarHidden ? 0 :
    self.navigationController.navigationBar.frame.size.height;
票数 12
EN

Stack Overflow用户

发布于 2010-06-04 15:28:51

切勿使用硬编码,如'44',因为它不遵循‘兼容性规则’。没人知道下一代iPhone会有什么样的“状态栏”。

除了计算状态栏或导航栏的确切高度外,还可以使用以下内容:

代码语言:javascript
复制
[[UIScreen mainScreen] bounds]; 
[[UIScreen mainScreen] applicationFrame];
票数 3
EN

Stack Overflow用户

发布于 2014-05-09 14:21:29

我认为当导航栏出现时,您正在尝试查找可用的框架。我只需将applicationFrame的原点向下移动,并将高度减小相同的量

代码语言:javascript
复制
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];    
appFrame.origin.y += self.navigationController.navigationBar.frame.size.height;
appFrame.size.height -= self.navigationController.navigationBar.frame.size.height;

像个魔法师一样工作

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2971937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档