UISearchBar没有向上移动

时间:2011-11-04 10:28:23

标签: iphone ios uisearchbar

不知怎的,我不知道为什么默认动画会失败。

我的搜索栏没有按原样向上移动。

视图在UIView中,我想知道这是否是问题。

包括IB布局

enter image description here enter image description here enter image description here

3 个答案:

答案 0 :(得分:11)

搜索栏实际上并没有进入“俯卧撑”动画。而是在导航栏上升时保持原位,从而用它拉动视图的其余部分。您应该可以通过注册为其委托(UISearchBarDelegate)并响应这些调用,在代码中手动移动搜索栏。

#pragma mark - UISearchBarDelegate Methods
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
    //move the search bar up to the correct location eg
    [UIView animateWithDuration:.4
                 animations:^{ 
                     searchBar.frame = CGRectMake(searchBar.frame.origin.x,
                                                  0,
                                                  searchBar.frame.size.width,
                                                  searchBar.frame.size.height);
                 } 
                 completion:^(BOOL finished){
                     //whatever else you may need to do
                 }];
}

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
    //move the search bar down to the correct location eg
    [UIView animateWithDuration:.4
                 animations:^{ 
                     searchBar.frame = CGRectMake(searchBar.frame.origin.x,
                                                  /*SearchBar original Y*/,
                                                  searchBar.frame.size.width,
                                                  searchBar.frame.size.height);
                 } 
                 completion:^(BOOL finished){
                     //whatever else you may need to do
                 }];
}

答案 1 :(得分:2)

遵循Apple指南实施UISearchBarUISearchDisplayController的最佳方法是查看名为TableSearch的示例,说明如下:

  

演示如何使用搜索UITableView的内容   UISearchBar和UISearchDisplayController,有效过滤   并输出该表的内容。如果是iPhone / iPod Touch   应用程序有大量的表数据,此示例显示如何   如果内存使用是一个问题,请将其过滤到可管理的数量   您只希望用户滚动较少的表格内容。

我希望这会对你有所帮助。

答案 2 :(得分:1)

在问题的第一张图片中,您正在显示正在使用的UISearchDisplayController。为了实现精确的动画,您需要使用UISearchDisplayController并将其修改为UISearchBar,使其看起来像您自定义的那个。您可以在Interface Builder中拖动UISearchDisplayController,然后使用代码更改它的searchBar属性。

如果你在Interface BUilder中正确连接了所有内容,那么

self.searchDisplayController.searchbar将是您修改的内容。