无法定位 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
(或retain
或copy
),你应该release
或autorelease
【讨论】:
我需要将搜索栏固定在固定位置。如果我这样做,它将与表格视图一起滚动。【参考方案3】:最初我也遇到了麻烦。不要担心将 searchBar 添加为子视图。只需这样做:
self.tableView.tableHeaderView = searchBar;
searchBar 将被视为标题。但是,您需要将 CGRect 的大小更改为 (0,0,320,44)。
【讨论】:
以上是关于无法定位 UITableView?的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationController 如何成为 UITableView 的 navigationController?