ios:特定的翻转效果 - 比如ipod app

时间:2011-01-02 21:25:34

标签: iphone ios ipod

所以在过去的两天里,我一直在寻找这个问题的答案,我似乎找不到答案。

我试图重现的效果可以通过一个真实的例子来解释:在正在播放的视图中的ipod应用程序(在任何iphone上),当你触摸右上角的按钮时,它会在专辑封面之间翻转一些控件和有评级的专辑列表。请注意,按钮本身也会翻转,同时与下面的容器视图同时翻转。我不能让这个工作:

    [UIView transitionWithView:self.container1
                  duration:1
                   options:UIViewAnimationOptionTransitionFlipFromLeft
                animations:^{
                    if ([flipView superview])
                    {
                        [self.flipView removeFromSuperview];
                        [self.container1 addSubview:coverView];
                    }
                    else
                    {
                        [self.coverView removeFromSuperview];
                        [self.container1 addSubview:flipView];
                    }                       
                }
                completion:NULL];

[UIView transitionWithView:self.container2
                  duration:1
                   options:UIViewAnimationOptionTransitionFlipFromLeft
                animations:^{
                    if ([flipped superview])
                    {
                        [self.flipped removeFromSuperview];
                        [self.container2 addSubview:original];
                    }
                    else
                    {
                        [self.original removeFromSuperview];
                        [self.container2 addSubview:flipped];
                    }                       
                }
                completion:NULL];

我在使用此代码时遇到两个问题:

  • 虽然这可能相当容易,但由于我是菜鸟,我不知道如何在第一个动画中将其翻到左边,在第二个动画中翻到右边。像这样,它总是翻到左侧;
  • “original”和“flipped”都是UIButton类的实例。当我按下按钮时应用程序崩溃(我猜是因为它们是UIButton的,因为UIImageView的工作正常)。为什么这个问题是UIButton继承自UIView和所有?

任何人都有任何想法可能会指出我正确的方向? (对不起,很长的帖子,感谢任何输入!)

1 个答案:

答案 0 :(得分:0)

我认为您正在尝试执行类似于此主题的操作:How to do a flip animation between more than two UIViews?