在becomeFirstResponder上禁用UISearchBar搜索图标和占位符文本动画

ada*_*amF 8 animation placeholder uisearchbar becomefirstresponder ios

当用户点击按钮时,我想要显示一个UISearchBar.在buttonPress方法中,我创建了searchBar并将其添加为子视图,然后调用[searchBar becomeFirstResponder].如果我取出这个yesFirstResponder调用,搜索图标和占位符文本将出现在textField的中心.

在此输入图像描述

然后,当搜索栏成为第一响应者时,两个动画都是左对齐的.

在此输入图像描述

因为我连续两个动作,我得到一个奇怪的动画,其中图标和占位符从(0,0)动画.

如何禁用此动画,以便我可以简单地将第二个图像添加到我的视图中?

编辑:

我通过使用正确显示占位符文本

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
    [searchBar setPlaceholder:@"Type Here to Search"];
}
Run Code Online (Sandbox Code Playgroud)

我可以使用移动搜索图标[searchBar setPositionAdjustment:UIOffsetMake(x, y) forSearchBarIcon:UISearchBarIconSearch];,但更改仍然在动画中应用.

Man*_*Mac 0

这是一个 hack,但如果没有它你就无法生活。

编辑:如果您也想要占位符文本,您可以这样做。

最初将占位符文本设置为 @" ",并且

[self.searchBar setText:@"Place holder"];

[self.searchBar setPlaceholder:@"Place holder"];

[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTextColor:[UIColor grayColor]];
Run Code Online (Sandbox Code Playgroud)

当它成为第一响应者后,

[self.searchBar setText:@""];
Run Code Online (Sandbox Code Playgroud)