在TableView上锁定UISearchBar

时间:2012-10-08 02:03:31

标签: iphone ios tableview searchbar

当y边界达到0(或超出 - 值)

时,我想锁定表格视图顶部的搜索栏

我尝试在滚动视图委托方法中,但没有真正改变。实际上,搜索栏的框架已更改,但仍然表现为默认框架。

有什么想法吗?

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
   UISearchBar *searchBar = self.searchDisplayController.searchBar;
   CGRect rect = searchBar.frame;
   rect.origin.y = MAX(0, scrollView.contentOffset.y);

   self.searchDisplayController.searchBar.frame = CGRectMake(0,MAX(0,scrollView.contentOffset.y),320,44);
}

2 个答案:

答案 0 :(得分:1)

在viewdidload方法中,您需要偏移表视图:

self.tableView.contentOffset = CGPointMake(0.0, 44.0);

然后在IB中,在UINavigation控制器中拖动UITableview上方的搜索栏 或者可以添加它。

答案 1 :(得分:0)

如果您在iOS 6.0 +上运行,则需要致电setNeedsLayout

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
   UISearchBar *searchBar = self.searchDisplayController.searchBar;
   CGRect rect = searchBar.frame;
   rect.origin.y = MAX(0, scrollView.contentOffset.y);
   [scrollView setNeedsLayout];                  // <-- Call setNeedsLayout here.
   self.searchDisplayController.searchBar.frame = CGRectMake(0,MAX(0,scrollView.contentOffset.y),320,44);
}