Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Cocoa Touch-将动画链接在一起_Objective C_Ios_Cocoa Touch_Animation_Uipickerview - Fatal编程技术网

Objective c Cocoa Touch-将动画链接在一起

Objective c Cocoa Touch-将动画链接在一起,objective-c,ios,cocoa-touch,animation,uipickerview,Objective C,Ios,Cocoa Touch,Animation,Uipickerview,这听起来可能比实际情况更难。实际上,我正在尝试将一些动画链接在一起,以使其看起来平滑。我正在做的是一个UIPickerView的基本动画,它从屏幕底部滑动,当它被取消时,它会滑回屏幕底部。我用两种方法处理此功能-(void)showPicker和-(void)hidePicker 在选择器被隐藏之后,我想直接显示键盘,但我不想在选择器被隐藏之前显示键盘 另外,我想反过来说,在键盘被隐藏后,我想直接显示UIPickerView。我知道我可以观察UIKeyboardDidShowNotificati

这听起来可能比实际情况更难。实际上,我正在尝试将一些动画链接在一起,以使其看起来平滑。我正在做的是一个
UIPickerView
的基本动画,它从屏幕底部滑动,当它被取消时,它会滑回屏幕底部。我用两种方法处理此功能
-(void)showPicker
-(void)hidePicker

在选择器被隐藏之后,我想直接显示键盘,但我不想在选择器被隐藏之前显示键盘

另外,我想反过来说,在键盘被隐藏后,我想直接显示
UIPickerView
。我知道我可以观察
UIKeyboardDidShowNotification
UIKeyboardDidHideNotification


那么,如何处理这一问题,使这些动画以平滑的方式链接在一起,最好的方法是什么呢?

您是否将选取器显示为在字段或其他地方输入信息的一种方式? 如果是这样,最好使用
UITextField
inputView
属性,这样它的行为与普通的TextField非常相似,但使用
UIPickerView
而不是标准键盘


这是执行此操作的标准方法(在键盘上显示选择器),您不必费心链接动画。

对于路径选择器->键盘,请尝试

[UIView animateWithDuration:0.3
                 animations:^{
                     [self hidePicker];
                 }
                 completion:^(BOOL finished){
                     [yourInputView becomeFirstResponder];
                 }];

另一种方法是听UIKeyboardDidHideNotification并在回调中调用
showPicker

不,我有一个
UITextField
(使用键盘)。就是这样。如果您有一个
UITextField
,请按照说明使用
inputView
属性来显示选择器编号。。我有一个
UITextField
和一个
UILabel
,我用
UIPickerView
中的数据填充它。对不起,我不清楚。我想我应该用积木?类似于
-(void)showPickerCompletion:(void(^)completion)
(不确定语法是否正确)那么为什么不将UILabel更改为具有正确
inputView
属性的UITextField呢?您可以删除UITextField周围的框架,使其看起来像您的标签,并防止复制/粘贴该UITextField,使唯一可能的输入成为您的
UIPickerView
。这就是
inputView
属性的作用。哎呀,再次抱歉。我的UIExtField应该从键盘获取输入,UILabel应该从UIPickerView获取输入。我实际上在hidePicker中执行更多的逻辑,因此它将在hidePicker返回之前隐藏。那么显然,您应该将实际隐藏代码放入动画块中。您还可以使用持续时间参数。。。