当UIVIew隐藏在sameView中时,如何为UIview设置动画

时间:2012-09-10 14:18:28

标签: objective-c ios xcode ipad uiview

我有一个观点,我已经拖了一个View并分配了它

IBOutlet UIView * popupIpadView ,其中包含tableview文本字段和其他按钮。

我的要求是,在加载时, popupIpadView 最初会被隐藏。当我点击一个按钮时,会出现 PopupIpadview 。但我希望这个视图出现在从左到右的动画过渡中,反之亦然。我怎么能这样做?

例如,我正在使用下面的代码,但没有任何反应。

- (IBAction)showPopover:(UIButton *)sender
{
    popupiPhoneView.hidden = NO;
    popupiPhoneView.backgroundColor = [UIColor colorWithWhite:0 alpha:.5];        

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationCurve:UIViewAnimationCurveLinear];
    [UIView setAnimationDuration:3.0];
    [UIView commitAnimations];
}

1 个答案:

答案 0 :(得分:1)

不是使用Hidden属性,而是将alpha值设置为0,将原点设置在可见屏幕的左侧,比如-320 x和0 y。

在动画块中,在传递适当的过渡样式时将alpha设置为1。 最初将您的视图设置为

yourview.alpha = 0;
yourview.x = -320;

然后将其设置为转换代码中的适当坐标。

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:window cache:YES];

yourview.alpha = 1;
yourview.x = 320; // new coordinates
[UIView commitAnimations];