【发布时间】:2013-11-18 16:29:06
【问题描述】:
我正在尝试复制 App Store 搜索功能,在该功能中,再次点击搜索标签栏,将搜索结果滚动回第一个。
我的情况更简单,因为它是一个传统的表格视图,所以它需要滚动到顶部。我设置了 UITabBarControllerDelegate 并且可以检测标签栏的选择。
在didSelectViewController中,我试过了:
- (void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if(viewController == tabBarController.selectedViewController) {
[searchResultsTable setContentOffset:CGPointZero animated:YES];
}
}
和
[searchResultsTable scrollRectToVisible:tableOrigin animated:YES];
其中 tableOrigin 是我在 viewDidLoad 中设置的表格视图框架矩形。
第一个实现 (setContentOffset) 向上滚动但在搜索栏附近停止并部分切断第一行。我假设这与 iOS 7 导航栏的工作方式有关?
第二个实现(scrollRectToVisible)第一次工作,但如果我稍后回到搜索选项卡就会变得不稳定。
是否有可靠、可重复的视图来模仿“滚动到顶部”功能,就像它以编程方式点击状态栏的方式一样,并且不会切断 iOS 7 中的任何行或搜索栏?
更新:SearchBar 是 UITableView 的一部分。
【问题讨论】:
标签: ios objective-c uitableview uitabbarcontroller