仅在iOS3上半透明时,uitableview部分标题在导航栏下方

时间:2010-11-15 14:52:37

标签: iphone uitableview

我有同样的问题 UITableView scrolling under the navigation bar但是我将此作为一个新问题发布,因为我有一些更具体的细节。

我在一个带有黑色TRANSLUCENT导航栏的页面上有一个全屏幕表(带有部分)。这是在UIViewController中,因为我有一些视图覆盖在顶部,因此表以编程方式创建;

- (void)viewDidLoad {

  [super viewDidLoad];

   self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
   self.navigationController.navigationBar.tintColor = nil;
   self.navigationController.navigationBar.translucent = YES;

   tableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] bounds] style:UITableViewStylePlain];
   tableView.delegate = self;
   tableView.dataSource = self;
   [tableView setContentInset:UIEdgeInsetsMake(44,0,0,0)];

   [self.view addSubview:tableView];
   [tableView release];
}

我的问题是虽然这在iOS4上完美运行 - 因为在滚动时,部分标题会在半透明的桌面视图的底部进行对接,而在iOS3上,标题会反过来直到状态栏的底部:(

如果我将半透明属性设置为NO,并删除co​​ntentInset,则它在两个操作系统中的工作方式相同且正确。

除此之外,行为是正确的,我希望表格的内容向上滚动到半透明导航栏后面,但我也希望章节标题在导航栏下方停止,以便它们完全可见。

对于iOS3和iOS4,这是否应该有效?我可能做错了什么想法?

由于 罗杰

1 个答案:

答案 0 :(得分:0)

尝试将tableview的框架框架设置为self.view.bounds

我的猜测[[UIScreen mainScreen]界限]是480像素高(带状态栏)。

P.S。作为另一种选择尝试设置self.wantfullscreenlayout = NO;