カスタムUITableViewCell(画像ビュー、ボタン、3つのラベル)を作成しました。現在、アニメーションを追加しようとしています。したがって、ボタンをタップすると、ボタンがフェードアウトし、スピナーがボタンに置き換わります。2秒後、セルのサブビューがフェードインすると、セルが赤い色でオーバーレイされ、インジケーターが削除され、赤いオーバーレイがフェードアウトし始めます。また、以前に削除したボタンがフェードインします。
(私はそれをより良い方法で表現することはできませんでした:P)
方法は次のとおりです。
-(void)rentButtonPressed:(id)sender
{
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
[indicator startAnimating];
indicator.center = self.rentButton.center;
[UIView animateWithDuration:0.2
animations:^{self.rentButton.alpha = 0.0;}
completion:^(BOOL finished){
[self.rentButton removeFromSuperview];
[self addSubview:indicator];
}
];
UIView *overlay = [[UIView alloc] initWithFrame:self.backgroundImage.frame];
overlay.alpha = 0.0;
overlay.backgroundColor = [UIColor redColor];
[self.contentView addSubview:overlay];
[UIView animateWithDuration:0.4
delay:2.0
options:UIViewAnimationCurveEaseInOut
animations:^{
[indicator removeFromSuperview];
overlay.alpha = 0.4;
}
completion:^(BOOL finished){
[UIView animateWithDuration:0.4
animations:^{ overlay.alpha = 0.0; }
completion:^(BOOL finished)
{
[overlay removeFromSuperview];
}
];
[self.contentView addSubview:self.rentButton];
[UIView animateWithDuration:0.4 animations:^{ self.rentButton.alpha = 1.0;}];
[self.delegate didTryToRentMovieAtCell:self];
}
];
}
したがって、コードはボタンをフェードアウトし、スピナーに置き換えて、赤いオーバーレイでフェードインします。問題は、赤いオーバーレイがフェードアウトしないが、ボタンと同じように消えて、フェードインするのではなく、表示されるだけであるということです。