Chr*_*lli 3 iphone animation uitableview uisearchbar ios
更新03/25/14
看起来缺少动画是iOS 7.0中的一个错误,并且已经在iOS 7.1中得到修复.
原始问题
通常,当您在iOS 7中的搜索栏内点击时,它会有一个漂亮的小动画,其中放大镜和"搜索"文本从搜索栏的中间滑动到左侧.但是,如果我将搜索栏放在导航栏中而不是在表格视图中,则它不再是动画.相反,放大镜和"搜索"文本会立即跳转到搜索栏的左侧.
使用Apple的UISearchBar示例项目,您可以轻松地看到这一点.打开故事板.displaysSearchBarInNavigationBar
在Search Display Controller上添加一个布尔运行时属性,并选中它创建的复选框.然后,将搜索栏向上移动到树中的一个级别,使其位于表视图之外.运行项目,搜索栏现在应该在导航栏中.请注意,当您点按搜索栏时,它不会设置动画.
有没有人成功地将UISearchBar放在iOS 7的导航栏中,并让它正常运行?
为了清楚起见,我的问题是当用户点击搜索栏时,下面的第一个和第二个屏幕截图之间没有搜索栏的动画.
在iOS 7中,UISearchDisplayController默认支持此功能.设置UISearchDisplayController displaysSearchBarInNavigationBar = YES
为使其易于使用.
Apple Inc Doc: 从iOS 7.0开始,您可以通过配置搜索显示控制器的displaysSearchBarInNavigationBar和navigationItem属性,将搜索显示控制器与导航栏(UINavigationBar类的实例)配合使用.
你的预期答案
从表视图中删除搜索栏.使用displaysSearchBarInNavigationBar意味着UISearchDisplayController将负责将搜索栏放在层次结构中.
- (void)viewDidLoad
{
self.searchDisplayController.displaysSearchBarInNavigationBar=YES;
}
Run Code Online (Sandbox Code Playgroud)
这不是动画第一次点击,但动画在取消时刻效果很好:
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
[searchBar setShowsCancelButton:YES animated:YES];
}
-(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{
[searchBar setShowsCancelButton:NO animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3879 次 |
最近记录: |