UITableView的位置

时间:2010-08-18 15:43:07

标签: iphone uitableview

我的应用使用带有2个基于导航的视图的标签栏,其中我在导航栏和表格视图之间添加自定义视图(标题栏)。

- (void)viewDidLoad {
    [super viewDidLoad];

 // load title bar controller
 TitleBarViewController *tbar = [[TitleBarViewController alloc] init];
 [tbar setTitleImage:[UIImage imageNamed:@"v2-une.png"]];
 [self setTitleBar:tbar];
 [tbar release];



    // show title bar
     [self.navigationController.view addSubview:self.titleBar.view];

....

当使用默认选择的导航视图启动应用程序时,我使用(void)viewDidAppearBOOL)动画将表视图设置为较低的Y值,以便标题栏可见。

Y = 20:20是标题栏的高度。

self.tableView.frame = CGRectMake(0, 20, 320, 347);

问题在于,当我选择一行并推送详细视图并隐藏底栏以显示工具栏时,事情就搞砸了。 我的标题栏的高度增加并变为> 20我无法解释为什么。

现在当我回到主表视图时,它的Y减少了20并且粘在了导航栏上。我的标题然后出现在表格视图的第一个单元格上方。

如果点击2选项卡然后返回第1个标签,则所有内容都会按预期重新排列。

这里有一些图片来说明这一切: link text

任何人都可以帮我弄清楚为什么会这样吗? 可能是我把我的定位代码放错了?

1 个答案:

答案 0 :(得分:0)

有可能是所有东西的背景都是黑色的,并且桌面视图向下移动,露出背景,而不是黑色的titleBar实际上增加了大小?这有点意义,因为当tableView向上移动时问题就消失了。