无法在UITableView中与UISearchBar交互

时间:2013-11-21 21:54:00

标签: uitableview ios7 uisearchbar

问题

我有一个UIGestureRecognizer设置,按下我的UITableView中的任何UITableViewCell,它会将UISearchBar设置为活动状态。一切正常。我可以像往常一样按下单元格和UISearchBar动画。我可以输入字母,点击并按住UITextField并放大到特定的光标位置。我可以点击取消,一切都回到正确的位置。

这就是问题出现的地方。我向下滚动几个单元格(或直到UISearchBar隐藏在UINavigationBar下)并按下单元格以激活UISearchBar。一切似乎都在适当的位置动画,但当我试图点击并按住放大到文本字段上的正确光标时,没有任何反应。我也无法点击取消按钮。奇怪的是,如果我按下UISearchBar的任何部分,它就会成为第一个响应者。

我做过的事情

  • 我玩了searchResultsTableView的contentInset,看看是否阻止了UISearchBar。
  • 我使用searchResultsTableView的框架及其超级视图来查看它是否阻止了UISearchBar。
  • 我添加了UISearchDisplayDelegate协议中定义的方法,并确保没有阻止所述UISearchBar的视图。

请帮忙!

我的目标是能够按照预期与UISearchBar进行交互。如果您知道任何其他选项,我可以告诉我!

提前谢谢!!

更新

我在Programmatically activating UISearchBar blocks user interactions with it

找到答案

当显示UISearchBar并且它变为活动状态时,可能会出现计时问题,因此解决方案是延迟激活它。

1 个答案:

答案 0 :(得分:0)

因此,当您向下滚动时,由于iOS尝试重用单元格来节省内存,因此tableview实际上没有引用原始单元格。解决这个问题的方法是在cellForIndexPath函数中说if(indexPath.row == 0){cell.contentview addGesture ...}或使用didSelectAtIndexPath函数来指定单击indexPath.row时发生的情况0