我将动态滚动的UISearchBar添加到tableview的顶部。为此,我将UISearchBar添加为tableview的子视图,然后实现了scrollviewdelegate方法,以便搜索栏始终固定在顶部。我还相应地设置了tableView的contentInset,以便最顶层的单元格对于搜索栏的偏移量足够大。
我遇到的唯一问题是使用在tableview中第一个单元格上方绘制的默认分隔符。从顶部开始,向下滚动时,分隔符实际上是在搜索栏上方而不是在搜索栏下方绘制的。这创建了一个我想修复的可怕的用户界面错误。请注意,这只发生在第一个单元格中;单元格之间的每个其他分隔符都在搜索栏下滚动,就像它应该的那样,并且没有相同的UI错误。有什么想法吗?
答案 0 :(得分:1)
你确定UISearchBar是最前沿的吗?尝试在代码viewDidLoad
中将其一直带到前面。如果这不能解决故障,请考虑接口的替代解决方案。这里有一些 - 尝试其中任何一个:
使UISearchBar成为UITableView的标题(不是一个部分;表视图本身)。这是非常标准的界面。
如果您使用的是iOS 6,而不是滚动视图委托技巧(在iOS 6之前非常标准,做得好),请使用约束将搜索栏固定到视图层次结构上方的视图,而不是表视图。 (因为您在导航控制器中,这将是导航控制器在您的情况下的视图。)这是防止滚动视图子视图与内容一起滚动的新iOS 6方法。我不知道这是否能解决这个问题,但值得一试。
请勿使用默认分隔符。将您自己的分隔符绘制为单元格背景图像的一部分并不困难。