IOS 7下的UISearchBar搜索图标在按下取消按钮时无法动画居中

3
IOS 7的UISearchBar中的搜索图标(放大镜)在取消按钮动画进入时会随着占位文本向左移动,但是当取消按钮动画退出时,搜索图标只会跳到中心位置,而占位文本会动画到中心位置。对于从头开始的项目,这种情况都会发生,而在联系人应用程序的搜索栏中,这种情况并不会发生(实际上,在应用程序中,图标会随着占位符向中心动画)。我在模拟器上进行了测试。我是否漏了什么,我需要做一些特定的事情才能使其与联系人应用程序中的情况相同,或者这是我不知道的某个错误吗?使用Xcode 5.0.2。
此外,我注意到IOS 6和IOS 7中的搜索栏字段大小(长度)存在差异,IOS 6中有点更长。如果有人有一些提示可以让它们具有相同的长度,那将不胜感激。

我成功解决了第一个问题,当stackoverflow允许我时,我会在另外4个小时内发布它作为答案。 - Shane
2个回答

4

我已经找到了我的第一个问题的答案,即搜索图标不能动画到中心的问题。

我在

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar

方法中调用了

[searchBar setShowsCancelButton:NO animated:YES];

这导致图标不能动画到中心。相反,应该在

- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar

方法中调用。

我还没有找到另一个问题的简单解决方案,如果我找到了,我会在这里更新。


0

如果您正在使用iOS7,则搜索栏图标的默认位置是中心,而在iOS6中它位于左侧位置。但是,如果您想在iOS7中将搜索栏图标放在中心,则需要清除文本。为此,您可以在取消按钮操作中添加以下内容。谢谢

self.searchBar.text =@"";

这并不是我在问题中所指的。我已经在我的代码中使用了你所提到的内容,但问题是搜索栏图标没有平滑地移动到中心,它只会在一个框架中闪烁到中心,而占位文本实际上平稳移动(不考虑字段以前是否被填写)。我已经在答案中提到了如何解决这个问题。 - Shane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接