在UIView动画触摸问题

问题描述:

我是动画UIView时,用户触摸自定义下拉菜单显示选择器视图从底部side.UIView包含Pickerview ...所以当我改变它的框架向上移动。我得到我想要的,但pickerView不承认联系!(见下面的截图)在UIView动画触摸问题

代码是这样的

CGRect pickerFrame=self.pickerSheet.frame; 
    CGRect viewFrame=self.view.frame; 

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:SHEET_ANIMATION_DURATION]; 
//change Frame of View containing UIPickerView 

pickerFrame.origin.y=202+animatedDistance; 
viewFrame.origin.y-=animatedDistance;//animated distance is value by which view needs to move upward. 
[self.pickerSheet setFrame:pickerFrame]; 
[self.view setFrame:viewFrame]; 

[UIView commitAnimations]; 

screenshot

+0

但是,您是如何创建UIPickerView的?粘贴它的代码。 –

+0

@SurjitJoshi通过IB ...我在self.view中添加它运行时[self.view addSubview:self.pickerSheet]; \t [self.pickerSheet setFrame:CGRectMake(0,460,320,258)]; – iAmitWagh

首先,请++ **,停止使用该动画声明,贝丁使用新的,块动画:

[UIView animateWithDuration:SHEET_ANIMATION_DURATION 
          delay:0 
         options:nil 
        animations:^{ 
         pickerFrame.origin.y=202+animatedDistance; 
         viewFrame.origin.y-=animatedDistance; 
        } 
        completion:^(BOO f){ 
         //any actions after animation ended 
        }]; 

其次,我认为你的问题在别的地方。可以通过,你实现你的触摸或选择错误。

请开始使用新的,更好的动画块,但我觉得有东西在你的代码丢失,你需要把下面的代码:将这个代码选项

UIViewAnimationOptionAllowUserInteraction 

在新的动画块,或者找到一种方法将它放在旧的动画块中