Ios 带有UITableView和UISearchBar间隙问题的UIViewController
我有一个Ios 带有UITableView和UISearchBar间隙问题的UIViewController,ios,uitableview,uisearchbar,Ios,Uitableview,Uisearchbar,我有一个UIViewController,里面有一个UITableView和一个UISearchBar。一旦搜索栏成为第一响应者,搜索栏和tableview之间就会有一个小的间隙 当UISearchBar是UIViewController视图的子视图而不是UITableView的子视图时,没有间隙 显然,这种方法的一个问题是搜索栏会粘在顶部,不会与其他单元格一起滚动,这是不需要的 有什么想法吗 编辑: 前两幅图像对应于出现间隙的UISearchBar,它是UITableView的子级 最后两
UIViewController
,里面有一个UITableView
和一个UISearchBar
。一旦搜索栏成为第一响应者,搜索栏和tableview之间就会有一个小的间隙
当UISearchBar
是UIViewController
视图的子视图而不是UITableView
的子视图时,没有间隙
显然,这种方法的一个问题是搜索栏会粘在顶部,不会与其他单元格一起滚动,这是不需要的
有什么想法吗
编辑:
前两幅图像对应于出现间隙的UISearchBar
,它是UITableView
的子级
最后两幅图像对应于
UISearchBar
是UIViewController
视图的子视图,在这种情况下没有间隙。如果看不到代码,有点困难,但是,也许可以尝试将uisearchbar设置为uitableview的标题视图,而不是将其添加为子视图。我怀疑这可能与以下事实有关:在uitableview
中,使用UITableViewController
,您可以向下拉动整个表视图和搜索栏,以显示背景后面的空间
当您将UISearchBar
和UITableView
插入UIView
时,“下拉”UI不会被继承(因为它是唯一的UITableViewController
),因此“下拉”空间的“提示”不存在
要检查这一点并希望解决您的问题,请通过实现
UITableView
propertiessetBackgroundView
和setBackgroundColor
将UINavigationBar
半透明属性设置为NO
时,会出现间隙。将其设置为YES
解决问题。动画再次平滑,并且UISearchBar
和UITableView
之间没有间隙。我无法解释原因,这似乎是苹果方面的一个缺陷,因为创建一个示例项目很容易复制。我遇到了完全相同的问题,但是上面的解决方案都不起作用。根据@plgrenier的回答,状态栏的半透明性导致了问题
我处理此问题的一种方法是使用搜索代理切换半透明:
#pragma mark - Table Search Delegates
- (void) searchBarTextDidBeginEditing:(UISearchBar *)searchBar{
[self.navigationController.navigationBar setTranslucent:YES];
}
-(void) searchBarTextDidEndEditing:(UISearchBar *)searchBar{
[self.navigationController.navigationBar setTranslucent:NO];
}
能否请您更清楚地说明每个图像示例附加了哪些配置?完成。你知道是什么导致了这个差距吗?请看答案。。。这有帮助吗?缺口还在这里,但是黑色的。间隔大小似乎等于状态栏。3年后,许多Xcode/iOS版本。。。这仍然是一个问题,此修复仍然有效。我的是
true
/YES
,将其设置为false
/NO
修复了i半透明属性可以解决我的问题,但它更改了我的导航栏颜色,因此您可以有其他解决方案吗?非常感谢。