私は無駄に以下のいくつかのバリエーションを試しました。私が欲しいのは、いくつかのことを示すカールダウントランジションと、その逆のカールトランジションバックアップです。透明感があるので、透明なものがビューの上に転がる効果があります。これは、ロールアップとロールダウンで呼び出される関数です。
-(void) setVisibility:(BOOL)isVisible animated:(BOOL)animated{
if (isVisible){
self.topFold.hidden = YES;
}
[UIView transitionWithView:self
duration:1.0f
options:isVisible ? UIViewAnimationOptionTransitionCurlDown : UIViewAnimationOptionTransitionCurlUp
animations:^{
self.imageView.hidden = !isVisible;
self.background.hidden = !isVisible;
self.bottomCornerFold.hidden = !isVisible;
}
completion:^(BOOL finished){
if (!isVisible){
self.topFold.hidden = NO;
}
}
];
}
私は10億の異なるシナリオを試しましたが、これが最も近いものです。ただし、問題は、isVisible
=YES
で実行するとtopFold
、遷移が完了するまで表示されたままになることです。つまり、新しいものが上に表示されるビューのコピーがあるかのように、新しいものがその上にロールダウンします。そして、それが完了すると、すべてが正しいバージョンに置き換えられます。
明確にするために、私はアニメーションが始まる前に隠そうとしていtopFold
ますが、何らかの理由で、アニメーションが完了するまでぶらぶらしていると主張しています。ここにポインタが欲しいです。