我正在构建一个TTTableViewController
基于 Three20 TTCalog 示例的子类。他们在那里定义了一个TTTableViewController
具有搜索功能的子类,称为SearchTextController
,并且它有一个搜索栏出现在表视图标题中。
这是他们的loadView
方法的样子:
- (void)loadView {
[super loadView];
TTTableViewController* searchController = [[[TTTableViewController alloc] init] autorelease];
searchController.dataSource = [[[MockSearchDataSource alloc] initWithDuration:1.5] autorelease];
self.searchViewController = searchController;
self.tableView.tableHeaderView = _searchController.searchBar;
}
我试图在我自己的 TTTableView 子类中重新实现相同的功能。问题是我无法显示搜索栏。
loadView
在TTCalog SearchTestController中运行这些(在最后一行之后)
NSLog(@"_searchController.searchBar address %@",_searchController.searchBar.description);
NSLog(@"self.tableView.tableHeaderView address %@",self.tableView.tableHeaderView.description);
为层产生相同的内存地址(意味着视图设置正确)
2012-07-03 12:00:02.326 TTCatalog[53493:f803] _searchController.searchBar address <UISearchBar: 0x6a5c940; frame = (0 0; 320 44); layer = <CALayer: 0x6a5ca40>>
2012-07-03 12:00:02.327 TTCatalog[53493:f803] self.tableView.tableHeaderView address <UISearchBar: 0x6a5c940; frame = (0 0; 320 44); layer = <CALayer: 0x6a5ca40>>
当我在我的应用程序中运行相同的 NSLogs 时,我得到了这个:
2012-07-03 11:41:54.900 myApp[51991:f803] _searchController.searchBar address <UISearchBar: 0x6a43c20; frame = (0 0; 320 44); layer = <CALayer: 0x6a43ce0>>
2012-07-03 11:41:54.901 myApp[51991:f803] self.tableView.tableHeaderView address <UISearchBar: 0x6a43c20; frame = (0 0; 320 44); layer = <CALayer: 0x6a43ce0>>
这些图层在我的应用程序中也具有相同的内存地址,但搜索栏在表格视图标题中不可见。我在这里还缺少什么吗?