在iOS中按钮(打扮成卡片)的翻转效果

时间:2012-01-09 12:56:32

标签: ios uibutton flip

更新:

到目前为止我遇到的问题是我必须两次触摸卡才能让它们翻转负载。在他们第一次翻转之后他们会按预期打开触摸,但是第一次这些卡需要两次触摸才能进行初始状态更改。

这是一个小视频,展示我刚刚解释过的行为:http://youtu.be/KrCmfyK3Z9Q?hd=1

代码非常简单。它是这样的:

viwDidLoad初始化:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.view addSubview:optionOneBack];        
    [self.view addSubview:optionTwoBack];        
    [self.view addSubview:optionThreeBack];  
}

翻转方法:

- (void)flip:(id)sender {

    // Identify the card that has been touched (button clicked) and assign the values for the animation
if ((sender == optionOneFront) || (sender == optionOneBack)){
    front = optionOneFront;
    back  = optionOneBack;    
}
else if ((sender == optionTwoFront) || (sender == optionTwoBack)){ 
    front = optionTwoFront;
    back  = optionTwoBack;
}
else {
    front = optionThreeFront;
    back  = optionThreeBack;
}     

// Flip the card with animation
BOOL optionFrontIsHidden = front.hidden;

UIView *transitionView;
transitionView = optionFrontIsHidden ? back : front;

[UIView transitionWithView:transitionView
                  duration:0.5 
                   options:UIViewAnimationOptionTransitionFlipFromLeft
                animations:nil
                completion:^(BOOL finished){
                    front.hidden = !optionFrontIsHidden;
                    back.hidden  = optionFrontIsHidden;
                }
];

}

在我继续谷歌搜索时,您可以提供的任何帮助将非常感激。

先谢谢了,

涓。

1 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow!

您可以使用UIView来完成UIButton s的操作,因为它们也是UIView的后代。因此,您的转换代码应该只需要很少的适应性。