我的应用使用带有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
任何人都可以帮我弄清楚为什么会这样吗? 可能是我把我的定位代码放错了?
答案 0 :(得分:0)
有可能是所有东西的背景都是黑色的,并且桌面视图向下移动,露出背景,而不是黑色的titleBar实际上增加了大小?这有点意义,因为当tableView向上移动时问题就消失了。