iphone - 存在导航栏和标签栏 Controller 时的 UIView 框架

标签 iphone objective-c uiview uinavigationcontroller uitabbarcontroller

我正在 loadView 中以编程方式创建一个 UIView。该应用程序有一个 UITabBarController 和 UINavigationController。

当标签栏和导航栏同时存在时,如何创建一个自动调整大小的 View ?

我目前解决这个问题的方法是计算导航和标签栏 Controller 的高度,然后从主屏幕的高度中减去它们:

float navObjectsHeight = self.tabBarController.tabBar.frame.size.height 
    + self.navigationController.navigationBar.frame.size.height;

CGRect mainFrame = CGRectMake(0, 0, screenFrame.size.width, 
  screenFrame.size.height - navObjectsHeight);

UIView *contentWrapper = [[UIView alloc] initWithFrame:mainFrame];

最佳答案

UIView 有一个属性来处理这种情况。当您以编程方式创建它时,要使用的代码是:

UIView *aView = [[UIView alloc] init];
aView.autoresizingMask = UIViewAutoresizingFlexibleHeight;

关于iphone - 存在导航栏和标签栏 Controller 时的 UIView 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3687920/

相关文章:

ios - 使用 Segue 的主细节 View

ios - 如何从 objective-c 中的日期选择器获取日期?

ios - 在动画发生之前旋转 UIView

ios - Cocoa iOS 在 UIView 中制作 CGPoints "Bigger"

iphone - 像 iPhone 的电子邮件应用程序一样对图像进行动画处理

ios - 在 Assets 库中播放音频

ios - 区分目录和文件

swift - Playground 中的 UIView

iphone - 反转来自麦克风的音频

iphone - 在 Objective-C 中使用 block 作为 TargetAction