1

当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);
}
4

2 回答 2

1

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

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

然后在 IB 中将搜索栏拖到 UINavigation 控制器中的 UITableview 上方或按语法添加。

于 2012-10-08T02:37:58.583 回答
0

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

- (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);
}
于 2013-04-22T15:00:46.560 回答