无法定位 UITableView?

Posted

技术标签:

【中文标题】无法定位 UITableView?【英文标题】:Could Not able to position the UITableView? 【发布时间】:2010-07-17 06:40:19 【问题描述】:
- (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 像素处添加我的 self.view,最后 tableview 已作为子项添加到 self.view 。但是表格视图已与搜索栏重叠。我不知道它有什么问题。我试图改变 tableview 和 self.view 的各种 yPositions 但仍然没有任何反应。 谁能帮我解决这个问题?

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

我需要将搜索栏固定在固定位置。如果我这样做,它将与表格视图一起滚动。 尝试使用这个框架 self.view.frame=CGRectMake(0,0,320,436); searchbar.frame=CGRectMake(0,0,320,44); tableview.frame=CGRectMake(0,44,320,392); [self.view addSubview 搜索栏]; [self.view addSubview tableview];【参考方案2】:

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

作为旁注:任何你alloc(或retaincopy),你应该releaseautorelease

【讨论】:

我需要将搜索栏固定在固定位置。如果我这样做,它将与表格视图一起滚动。【参考方案3】:

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

self.tableView.tableHeaderView = searchBar;

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

【讨论】:

以上是关于无法定位 UITableView?的主要内容,如果未能解决你的问题,请参考以下文章

UITableView API大百科

iOS开发UI篇—UITableview控件使用小结

刷新 UITableView 而不刷新节标题

UINavigationController 如何成为 UITableView 的 navigationController?

在 UITableView 单元格中定位 UIImageViews

iOS 8 UITableView 背景颜色外观