Ios 如何制作一个“动画”;取消“;触摸UITextField时的按钮

Ios 如何制作一个“动画”;取消“;触摸UITextField时的按钮,ios,animation,uitextfield,Ios,Animation,Uitextfield,我现在正在创建一个类似Safari的浏览器应用: 视图顶部的UINavigationBar中插入了UITextField(左侧)和UISearchBar(右侧)。 我想知道是否有办法在用户触摸UITextField时在“取消”按钮上添加动画 动画与Safari上的动画一样:当用户触摸UITextField时,“取消”按钮从窗口的正外部出现,而UISearchBar正在淡出。 请注意,我正在通过UIBarbuttonItem(UIBarbuttonSystemCancel)初始化“取消”按钮。 任


我现在正在创建一个类似Safari的浏览器应用:
视图顶部的UINavigationBar中插入了UITextField(左侧)和UISearchBar(右侧)。
我想知道是否有办法在用户触摸UITextField时在“取消”按钮上添加动画
动画与Safari上的动画一样:当用户触摸UITextField时,“取消”按钮从窗口的正外部出现,而UISearchBar正在淡出。
请注意,我正在通过UIBarbuttonItem(UIBarbuttonSystemCancel)初始化“取消”按钮。
任何帮助都将不胜感激。

更新: 最后我自己找到了安瑟。似乎您无法指定显示或隐藏uibarbuttonite的特定位置。所以解决这个问题的一个可能的方法是定制一个看起来像UIBarButtonItem的UIButton,下面是代码:

-(void)viewDidLoad {
    ......
    CGSize backgroundStretchPoints = {4, 2};
    UIImage *image = [[UIImage imageNamed:@"UINavigationBarDefaultButton.png"] stretchableImageWithLeftCapWidth:backgroundStretchPoints.width
                                                                                               topCapHeight:backgroundStretchPoints.height];
    button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(330, 23, 80, 30); // initialize the button outside the window
    [button setBackgroundImage:image forState:UIControlStateNormal];
    [button setTitle:@"Cancel" forState:UIControlStateNormal];
    button.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:12];
    [button addTarget:self action:@selector(cancelButtonPressed) forControlEvents:UIControlEventTouchUpInside];
    [navigationBar addSubview: button];
    .......
}
当您单击UITextField(即)时,取消按钮将滑入窗口:

-(void)textFieldDidBeginEditing:(UITextField *)textField {
    [UIView animateWithDuration:0.25 animations:^{
        button.frame = CGRectMake(232, 23, 80, 30);  // here is the position button will slide into window with animation
    }];
}