無語了,遇到這個問題,雖然解決了,但接下來還是得好好找找問題的原因所在~~
問題重現
未修改前的程式碼
self.tableView.tableHeaderView = self.searchController.searchBar;
複製程式碼
直接將searchBar設定為tableView的tableHeaderView,然後奇葩的現象就出現了,手動下拉重新整理看不到重新整理控制元件,待放手後才會出現,具體看圖
放大來看,把MJRefreshNormalHeader給擋住了,而且你下拉多大的偏移量,這個多出來的view的高度就有多大
解決方案
方案一
先將searchBar新增到一個view中,再將該view設定為tableView的tableHeaderView
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KSCREEN_WIDTH, 45)];
[view addSubview:self.searchController.searchBar];
// 新增 searchbar 到 headerview
self.tableView.tableHeaderView = view
複製程式碼
方案二
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
return self.searchController.searchBar;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 45;
}
複製程式碼
目前我只發現這兩個方法最簡單有效,如果你有其它解決方案,希望能不吝賜教