【发布时间】:2015-01-24 14:34:23
【问题描述】:
我以编程方式向 tableHeaderView 添加了 UISearchBar,但它没有在视图加载时显示。 我的表格内容上方只有一个空白区域。当我向下滚动一点时,它会出现。 我更改了 tableHeaderView 的背景颜色以查看它是否完全可见 - 我可以看到更改后的颜色,因此 searchBar 本身似乎是不可见的。 有什么想法吗?
这是我的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
...
// Initialize the refresh control.
[self.refreshControl addTarget:self
action:@selector(refreshData)
forControlEvents:UIControlEventValueChanged];
// Suchelemente erzeugen
self.searchBar = [UISearchBar new];
self.searchDC = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self];
self.searchDC.searchResultsDelegate = self;
self.searchDC.delegate = self;
self.searchDC.searchResultsDataSource = self;
self.tableView.tableHeaderView = self.searchBar;
// some attempts to make it visible
self.searchBar.hidden = NO;
self.searchBar.layer.hidden = NO;
[self.searchBar sizeToFit];
}
好的,发现是刷新控件导致了问题。 在 viewWillAppear 中调用了一个方法来更新刷新控件的标题。当我评论这一行时,会出现搜索栏:
self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:title];
那么,如何让它们都工作呢?
【问题讨论】:
-
您是在 tableview 标题中添加其他内容还是将其 contentOffset 设置为某些内容?
-
我为表格视图控制器的 refreshControl 属性分配了一个刷新控件。不知道是不是也放在tableview header中?
-
你在使用故事板吗?
-
是的,但不是搜索栏或刷新控件。
标签: ios objective-c uitableview uisearchbar uirefreshcontrol