0

我目前正在制作一个需要隐藏我的 UIPicker 的项目,我已经用这段代码完成了所有的隐藏和动画工作,

在按钮按下事件上,这段代码是这样写的:

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.8];
    CGAffineTransform transfrom = CGAffineTransformMakeTranslation(0, -200);
    self.picker.transform = transfrom;
    self.picker.alpha = self.picker.alpha * (-1) + 1;
    [UIView commitAnimations];

并且在视图中确实加载了初始化;

    self.picker.alpha = 0;
    [self.view addSubview:self.picker]; //i dont really need this one

所以这里选择器会从按钮到顶部(0,-200)出现,但是当我再次单击按钮时,它会立即消失,因为 self.picker.alpha 变为 0。我也尝试设置动画延迟和 [UIView setAnimationDelay:3] ; 并尝试更多地设置animationDuration,但它在隐藏时不起作用。

我想知道如何使 UIPicker 以与它出现时相同的方式隐藏。希望它不会那么混乱。谢谢

4

2 回答 2

1

要将视图重置为其原始位置,您需要将 重置transformCGAffineTransformIdentity

于 2013-08-05T10:09:34.447 回答
0

正如@Wain 提到的,您transform在出现UIPickerView.

当您想在单击按钮时消失选取器视图时,您需要再次设置其变换。

这是在 iOS 中的 UIView 中学习动画的链接:http:
//developer.apple.com/library/ios/#documentation/windowsviews/conceptual/viewpg_iphoneos/animatingviews/animatingviews.html

于 2013-08-05T10:15:06.957 回答