如何在目标c中翻转UIAlertView中的imageview

时间:2013-01-24 08:15:17

标签: iphone objective-c xcode uiimageview uialertview

我有AlertView imageView,我必须以翻转动画(UIViewAnimationTransitionFlipFromLeft / Right)显示图片作为警告的subview

我使用以下方法

- (void) setAnimationFlip:(UIAlertView*)alertView {

    UIView *containerView = [[UIView alloc]initWithFrame:CGRectMake(20, 40, 150, 150)];
    UIImageView *mainView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"scene1.jpg"]];
    UIImageView *flipToView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"scene2.jpg"]];

    mainView.frame = CGRectMake(20, 40, 200, 210);
    flipToView.frame = CGRectMake(20, 40, 200, 210);

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:2.0];

    [UIView setAnimationTransition:([mainView superview] ?
                                    UIViewAnimationTransitionFlipFromLeft : UIViewAnimationTransitionFlipFromRight)
                           forView:containerView cache:YES];
    if ([flipToView superview])
    {
        [flipToView removeFromSuperview];
        [containerView addSubview:mainView];

    }
    else
    {
        [mainView removeFromSuperview];
        [containerView addSubview:flipToView];
    }

    [self.alrtViewPreview addSubview:containerView];
    [self.alrtViewPreview show];

    [UIView commitAnimations];

    //[containerView release];
    //[mainView release];
    //[flipToView release];

}

并且呼叫......

    switch (iEffect) {
            case 1:

                [self setAnimationFlip:alrtViewPreview];
                break;
    }

但它不适合我,任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

-(IBAction)btnClick:(UIButton*)sender {

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:sender cache:YES]; 
    [UIView setAnimationDelegate:self]; 
    [sender setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@",self.tileImage]] forState:UIControlStateNormal];
        [sender setTitle:self.tileText forState:UIControlStateNormal];

    [UIView commitAnimations];

}