0

当用户触摸自定义下拉菜单以从底部显示选取器视图时,我正在为 UIView 设置动画。UIView 包含 Pickerview ......所以当我将它的框架更改为向上移动时。我得到了我想要的,但 pickerView 无法识别触摸!(请参阅截图如下)

代码是这样的

    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]; 

截屏

4

2 回答 2

0

首先,++请**,停止使用这个动画声明,并使用新的块动画:

[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
                     }];

其次,我认为您的问题出在其他地方。可能,您执行触摸或选择器错误。

于 2011-12-01T10:28:50.697 回答
0

请开始使用新的更好的动画块,但我认为您的代码中缺少某些内容,您需要将代码放在下面:

UIViewAnimationOptionAllowUserInteraction

将此代码放在新动画块中的选项中,或找到一种方法将其放入旧动画块中

于 2014-05-25T17:47:06.607 回答