Jos*_*uez 18 uisearchdisplaycontroller ios ios7
我正在使用UISearchDisplayController与新的ios 7功能displaysSearchBarInNavigationBar和不透明的导航栏.搜索显示控制器似乎错误地定位了它的视图.
我尝试插入委托方法和重新定位,但我不能让初始位置正确,也不能在旋转时.此外,这似乎是一个草率的解决方案.


小智 19
只需在故事板中为视图控制器启用"Under Opaque Bars"或者如果你想编码.然后添加以下行.你好:)
self.edgesForExtendedLayout = UIRectEdgeAll;
self.extendedLayoutIncludesOpaqueBars = YES;
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题,我已经通过以下方式解决了:
-(void)setActive:(BOOL)可见动画:(BOOL)动画
{
如果(SYSTEM_VERSION_LESS_THAN(@“7”)){
if(self.active == 可见) return;
[self.searchContentsController.navigationController setNavigationBarHidden:NO 动画:NO];
如果(可见){
[self.searchBar 成为FirstResponder];
} 别的 {
[self.searchBar resignFirstResponder];
}
} 别的 {
self.searchContentsController.view.frame = CGRectMake(0, 0, kCurrentScreenWidth, kCurrentScreenHeight);
[超级setActive:可见动画:动画];
}
}
2.在 UISearchDisplayDelegate 中我添加了以下内容:
- (void) searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView {
// iOS7 黑客
如果(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@“7”)){
controller.searchResultsTableView.contentInset = UIEdgeInsetsMake(0.f, 0.f, 0.f, 0.f);
}
}
- (BOOL) searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
// -- iOS 7 黑客
如果(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@“7”)){
controller.searchResultsTableView.frame = CGRectMake(0, 64, kCurrentScreenWidth, kCurrentScreenHeight-64);
[controller.searchContentsController.view setNeedsLayout];
}
}
| 归档时间: |
|
| 查看次数: |
3934 次 |
| 最近记录: |