我在现有的TTTableViewController中添加了UIViewController,发现的一件奇怪的事是,已初始化的TTTableViewController的frame属性是有线的,例如在iOS布局中。

我有:

  • UIStatusBar
  • UINavigationController
  • UIViewController
  • UITabBar

  • 为了设置TTTableViewController填充所有剩余空间,我需要将高度设置为 460而不是367。(367 = 480-20-44-49)

    例如
    self.tableViewController.view.frame = CGRectMake(0, 0, 320, 460.0f);
    

    代替
    self.tableViewController.view.frame = CGRectMake(0, 0, 320, 367.0f);
    

    为什么会这样呢?

    *为澄清起见进行编辑:我的意思是在TTViewController顶部使用TTTableViewController(使用[self.view addSubview:self.tableViewController.view];),并且我需要设置self.tableViewController.view.frame = CGRectMake(0,0, 320,460.0f);而不是367

    最佳答案

    我认为这取决于您设置框架的时间。我非常确定,例如,当您在viewDidLoad中设置框架时,将在考虑状态栏和其他内容之前进行设置。可能还有其他情况。如果将其设置为320:460,则将调整其大小以考虑到状态栏和其他内容,使其填充屏幕的其余部分。如果您已将其考虑在内,则将其设置为320:367,则将再次调整其大小并进行压缩(基本上按比例缩小两次),使其仅填充屏幕的一部分。如果您使用的是viewDidLoad,则可以尝试将其粘贴在其他方法中(也许是viewWillAppear?),或者继续使用320:460。

    确切地知道您何时设置框架很高兴。另外请记住,我可能会离开。现在我的脑子有点模糊。

    关于iphone - 奇怪的three20的TTTableViewController框架属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12393496/

    10-09 08:05