重复淡入淡出效果不起作用
Posted
技术标签:
【中文标题】重复淡入淡出效果不起作用【英文标题】:Repeat Fade Effect not working 【发布时间】:2013-12-12 10:31:17 【问题描述】:以下是我的代码,用于在子视图上添加表格时显示一些淡入淡出效果。问题是代码第一次工作。添加表格后,当我点击关闭时,子视图按钮表格被删除。但是当我点击按钮再次在子视图上添加表格时,淡入淡出效果无法正常工作
double delayInSeconds2 = 0.1;
dispatch_time_t popTime2 = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds2 * NSEC_PER_SEC));
dispatch_after(popTime2, dispatch_get_main_queue(), ^(void)
self.otlTableRightView.frame=CGRectMake(100, 68, 300, 378);
[self.otlTableRightView setAlpha:0.0];
[self.otlRightFromView addSubview:self.otlTableRightView];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.2];
self.otlTableRightView.frame=CGRectMake(43, 68, 300, 378);
[UIView commitAnimations];
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^
[self.otlTableRightView setAlpha:0.0];
completion:^(BOOL done)
];
);
我正在使用
[self.otlTableRightView removeFromSuperview];
从我的子视图中删除我的表格
【问题讨论】:
【参考方案1】:如果你想要重复动画,你不应该removeFromSuperview
你的子视图!那么所有的repeat方法都无所谓了。
对于这种行为,您也可以考虑更简单的解决方案:
[UIView animateWithDuration:0.5
delay:0.0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveEaseInOut
animations:^
[self.otlTableRightView setAlpha:0.0];
completion:^(BOOL done)
[self.otlTableRightView setAlpha:2.0];
];
正如您在选项中看到的,您可以添加多个参数。
【讨论】:
UIViewAnimationOptionCurveEaseInOut 不工作,但你提到的其他两个选项工作正常【参考方案2】:要删除带有淡入淡出效果的表格视图,试试这个。希望它能起作用。
> [UIView animateWithDuration:1.0
> delay:0.0
> options: UIViewAnimationOptionCurveEaseInOut
> animations:^
> [self.otlTableRightView setAlpha:0.0];
>
> completion:^(BOOL done)
> [self.otlTableRightView removeFromSuperview];
> ];
【讨论】:
【参考方案3】:经过一番搜索,我终于找到了适合我的情况。在这里,otlTableRightView 是我的 UItableView
的出口 self.otlTableRightView.alpha = 0;
[UIView beginAnimations:@"fade in" context:nil];
[UIView setAnimationDuration:2.0];
self.otlTableRightView.alpha = 1.0;
[UIView commitAnimations];
【讨论】:
以上是关于重复淡入淡出效果不起作用的主要内容,如果未能解决你的问题,请参考以下文章