使用[removeFromSuperview]的ios动画

时间:2013-05-26 08:39:52

标签: ios animation

我使用以下代码行:

[UIView animateWithDuration:0.50
    animations:^{ itemView.transform = CGAffineTransformIdentity; }
    completion:^(BOOL finished) { if (finished) [itemView removeFromSuperview]; }];

动画什么都不做。如果我从完成块中取出removeFromSuperview,它也不起作用,我猜是因为视图在完成之前被删除了。所以无论哪种方式,外观都是一样的 - 没有动画。

我会对此提出任何建议或解决方法表示感谢。

1 个答案:

答案 0 :(得分:0)

您是否正确设置了转换?下面是将UIView缩放到零区域,然后将其从superview中删除的示例。

UIView *itemView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 200, 200)];
[itemView setBackgroundColor:[UIColor redColor]];
[self.view addSubview:itemView];

CGAffineTransform trans = CGAffineTransformScale(self.view.transform, 0, 0);
[UIView animateWithDuration:2.5 delay:0 options:0 animations:^{
    itemView.transform = trans;
} completion:^(BOOL finished) {
    [itemView removeFromSuperview];
}];