Iphone UISearchBar不向上移动
不知怎的,我不知道为什么默认动画失败了 我的搜索栏并没有像预期的那样向上移动 视图在UIView中,我想知道这是否是问题所在 包括IB布局Iphone UISearchBar不向上移动,iphone,ios,uisearchbar,Iphone,Ios,Uisearchbar,不知怎的,我不知道为什么默认动画失败了 我的搜索栏并没有像预期的那样向上移动 视图在UIView中,我想知道这是否是问题所在 包括IB布局 在“俯卧撑”动画中,搜索栏实际上不会移动。相反,当导航栏上升时,它保持在原位,从而拉动视图的其余部分。您应该能够在代码中手动移动搜索栏,方法是注册为其委托(UISearchBarDeleteGate)并响应这些调用 #pragma mark - UISearchBarDelegate Methods - (BOOL)searchBarShouldBegin
在“俯卧撑”动画中,搜索栏实际上不会移动。相反,当导航栏上升时,它保持在原位,从而拉动视图的其余部分。您应该能够在代码中手动移动搜索栏,方法是注册为其委托(UISearchBarDeleteGate)并响应这些调用
#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
}];
}
在问题的第一幅图像中,您显示了正在使用的UISearchDisplayController。为了实现精确的动画效果,您需要使用UISearchDisplayController并修改其UISearchBar,使其看起来像您制作的自定义工具栏。您可以在Interface Builder中拖动UISearchDisplayController,然后使用代码更改其searchBar属性
self.searchDisplayController.searchbar
将是您在Interface BUilder中正确连接所有内容后所修改的内容。实现UISearchBar
和UISearchDisplayController
的最佳方法如下Apple指南所示,该示例名为:
演示如何使用搜索UITableView的内容
UISearchBar和UISearchDisplayController,有效地过滤
然后把那张表的内容拿出来。如果是iPhone/iPod Touch
应用程序有大量的表数据,此示例演示如何
如果内存使用是一个问题,或者
您只希望用户滚动浏览更少的表内容
我希望这对您有所帮助。请详细说明我不理解您的问题Hi vijay,当我点击搜索栏时,它应该像第一张图片一样向上推。然而,我的搜索栏(第二张图片)向上推了导航栏,但没有向上移动到顶部。应该向上推什么?键盘?我还是不明白你的问题。发布一些相关代码。如何初始化和处理
UISearchDisplayController
和UISearchBar
的代理消息将有所帮助。还有任何与显示视图相关的内容。搜索栏应该像本地tableview应用程序一样向上推。嗨,猫王,谢谢你的回答,我一直在使用搜索显示控制器。这是我五小时前的回答嗨,安德鲁,谢谢这是我想做的:)将在7小时内奖励你,现在不能奖励你:)谢谢你帮我解决这个问题