【问题标题】:height of UIViewController is set to 460UIViewController 的高度设置为 460
【发布时间】:2012-01-23 06:33:52
【问题描述】:

我有一个 UIViewController 的子类,高度总是 460(self.view.frame.size.height)。我没有状态栏,所以我希望它是 480?有没有办法让它返回480?

【问题讨论】:

  • 没有足够的细节...例如,您是否设置了视图的autoresizingMask
  • 好吧,我有一个 UIScrollView,我希望将它设置为无论它是什么屏幕尺寸的全视图/全屏尺寸。但是当我执行 self.frame.size.height 时,它总是460..所以底部有一些间隙

标签: iphone objective-c ios ipad


【解决方案1】:

你可以这样做:

- (void)viewDidLoad
{
    // View setup

    // Ensure the view will keep filling its parent
    // when the parent view resizes (e.g. device rotation).
    self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}


- (void)viewWillAppear:(BOOL)animated
{
    // Force to fill the parent once the view is about to be shown.
    self.view.frame = self.view.superview.bounds;
}

如果您要使用 XIB,您可以在 Interface Builder 中设置自动调整掩码。

【讨论】:

    【解决方案2】:

    你可以这样设置

    self.view.frame=CGRectMake(0, 0,320, 480);

    在 viewdidLoad 或 loadView 中

    【讨论】:

    • 只有两种方法,一种方法是您可以使用 xib 并将状态栏属性更改为 None 并根据您的要求设置视图的高度,第二种方法是您可以通过您的代码。您可以选择要选择的选项。
    • xonegirlz 的观点是她不想硬编码数字(320、480)。而且她不需要:只需分配 self.view.superview.bounds 的值即可。
    • @DarkDust:我已经在评论中给出了另一个选项。仔细阅读......
    【解决方案3】:

    转到您的界面构建器 -> 属性检查器 -> 模拟指标 -> 状态栏 -> 无。 之后,您可以更改视图的高度。

    请查看以下链接: how to hide status bar in Iphone application

    它可以帮助你..

    【讨论】:

    • 我的视图控制器没有 xib
    【解决方案4】:

    如果你使用的是 xib 使用属性隐藏状态栏,否则你可以这样做

       [application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
    

    在您的 AppDelegate 的 applicationDidFinishLoading 方法中。另一种方法是使用 info.plist。

    【讨论】:

    • 我好像不能做setStatusBarHidden,我不认为有这样的事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多