- (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部分。
答案 0 :(得分:0)
你可以制作尺寸为320X436的视图,并在该视图中添加表格视图和搜索栏...
答案 1 :(得分:0)
我不会将子视图添加到navigationBar
。将其添加到view
。
作为旁注:alloc
(或retain
或copy
),您应该release
或autorelease
答案 2 :(得分:0)
我最初也遇到了麻烦。不要担心将searchBar添加为子视图。只需这样做:
self.tableView.tableHeaderView = searchBar;
searchBar将被视为标题。但是,您需要将CGRect的大小更改为(0,0,320,44)。