【问题标题】:How can I set position of 3 UITable and 2 Navigation Bar?如何设置 3 UITable 和 2 Navigation Bar 的位置?
【发布时间】:2011-04-29 03:24:16
【问题描述】:

我的 XIB 有 3 个 UITable 和 3 个导航栏。UITables 是动态比例,我使用导航栏来分隔 UITable 并显示 UITable 名称的标题。

我想在第一个表格下设置第一个导航栏,在第二个表格下设置第二个导航栏。

我试图找到第一个表格的框架以获取表格的位置 x、y 和高度,但它不起作用。

- (void)viewDidLoad
{
    blah blah...
    CGRect table1frame = table1.frame; //But it don't work
}

我不知道从哪里获得每个表格框架。 请帮助我或指导我。非常感谢您

【问题讨论】:

  • 请打印 NSLog(@"Table 1 : %@",table1);在上述方法中,如果在屏幕上打印 UITableView 对象的详细信息,那么我们确实有问题,但它打印 null 那么请确保您已将 table1 连接到插座。

标签: iphone objective-c uitableview ios4 frame


【解决方案1】:

我不确定我是否理解您要执行的操作,但请记住,在调用 viewDidLoad 时尚未设置视图控制器视图的几何形状(其边界)。任何子视图的边界(和框架)也没有设置。这意味着此时所有帧几乎都设置为零。而且,如果您尝试访问视图的框架或其任何子视图的框架,可能会注意到这一点,

因此,如果您需要根据视图的几何形状(在其框架或其任何子视图的框架上)做任何事情,通常在viewWillAppear 中完成。

您的问题可能不是 where 获取 table view 的框架,而是 when 获取它。您正在正确的位置(表格视图的框架属性)寻找它,但是您为时过早。我希望这会有所帮助。

【讨论】:

  • 首先我很抱歉我的语法错误;(。第二个是的,我正在查看何时获得表格视图的框架。非常感谢。我会尽快尝试跨度>
  • 嗯我试试 - (void) viewWillAppear:(BOOL)animated{ CGRect table1frame = table1.frame; NSLog(@"测试位置 %@", NSStringFromCGRect(table1frame));但这是我通过将文本放入单元格来更改单元格大小之前的第一个大小。
  • @crazyoxygen:如果您稍后更改单元格的大小,则表格视图框架不应更改。表格视图中的单元格将更少。这是你所关心的吗?我理解正确吗?
  • 对不起我的错误。是的,如果单元格比第一组大,表格中的单元格会更少。我必须调整表格大小。但我不知道如何。在我调整表格大小后可以显示所有单元格。我必须将导航栏放在表格单元格下,我不知道如何放置导航栏,因为我不知道如何获得表格的最后一帧。请帮助我:(
  • 您可以调整任何视图(包括表格视图和导航栏)的大小,只需设置其框架即可将其放置在您想要的位置。 'view.frame = CGRectMake(...)' 我只是想知道什么样的 UI 需要你在屏幕上移动表格视图和导航栏。也许这不值得付出努力,并且可能会导致令人困惑的用户体验。您最好只在“viewWillAppear”中设置所有框架(表格视图和导航栏)并且不再移动它们。但是,如前所述,如果您确实想移动它们,只需随时重置框架即可。
猜你喜欢
  • 2018-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多