Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 带有UITableView和UISearchBar间隙问题的UIViewController_Ios_Uitableview_Uisearchbar - Fatal编程技术网

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
properties
setBackgroundView
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半透明属性可以解决我的问题,但它更改了我的导航栏颜色,因此您可以有其他解决方案吗?非常感谢。