无法定位UITableView?

时间:2010-07-17 06:40:19

标签: iphone objective-c cocoa-touch

- (void)loadView 
{

       SettingsTitleBar=[[UINavigationController alloc] initWithRootViewController: self];
        searchBar =[ [UISearchBar alloc] initWithFrame:CGRectMake(0, 44, 320, 40)];
    searchBar.placeholder = @"Type your City Name";
    searchBar.delegate = self;
    searchBar.autocorrectionType = UITextAutocorrectionTypeNo;
    [searchBar setShowsCancelButton:YES];
    [SettingsTitleBar.navigationBar addSubview:searchBar];  
        self.view = [[UIView alloc]  initWithFrame:CGRectMake(0, 85, 320, 392)]; 
    self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 120, 320, 302)                                                         style: UITableViewStyleGrouped]; 
    [tableView setDelegate:self]; 
    [tableView setDataSource:self]; 
        [self.view addSubview:tableView];


}

我有一个UITableViewController, 我已经使用了标题栏的前44个像素高度,然后搜索栏的下一个40像素高度(44 + 40)。这些是作为导航控制器子视图添加的。然后我将自我视图添加到顶部的85像素,最后tableview已添加为self.view的子视图。但是表格视图与搜索栏重叠。我不错它。我试图改变tableview和self.view的各种yPositions,但仍然没有发生任何事情。 任何人都可以帮我解决这个问题吗?

注意:我不想将SearchBar添加到UITableviewHeader部分。

3 个答案:

答案 0 :(得分:0)

你可以制作尺寸为320X436的视图,并在该视图中添加表格视图和搜索栏...

答案 1 :(得分:0)

我不会将子视图添加到navigationBar。将其添加到view

作为旁注:alloc(或retaincopy),您应该releaseautorelease

答案 2 :(得分:0)

我最初也遇到了麻烦。不要担心将searchBar添加为子视图。只需这样做:

self.tableView.tableHeaderView = searchBar;

searchBar将被视为标题。但是,您需要将CGRect的大小更改为(0,0,320,44)。