Dav*_*man 2 objective-c uiview ios
我已经尝试过关于其他几个线程的建议,但他们的方法在这种情况下似乎不起作用.这是我的情况:
我有2个滚动视图."滚动视图A"具有在滚动"滚动视图A"时淡入和淡出的标签.拖动"滚动视图B"时,我想立即隐藏"滚动视图A"上的标签.但是我不能打断标签的慢速淡出动画.以下是我使用的两种方法:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
if (scrollView.tag != 1)
{
[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState animations:^{
self.liveOverlayLabel.alpha = .6;
} completion:^(BOOL finished) {
}];
}
else
{
[UIView animateWithDuration:0 delay:0 options:UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState animations:^{
self.liveOverlayLabel.alpha = 0;
} completion:^(BOOL finished) {
self.liveOverlayLabel.alpha = 0;
}];
}
}
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
if (scrollView.tag != 1)
{
NSLog(@"stoppping");
[UIView animateWithDuration:5 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
self.liveOverlayLabel.alpha = 0;
} completion:^(BOOL finished) {
}];
}
else
{
self.liveOverlayLabel.alpha = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
UIView动画最终使用"隐藏"视图层上的CAAnimation对象.
要停止"动态"动画,您可以使用以下代码:
[aView.layer removeAllAnimations];
Run Code Online (Sandbox Code Playgroud)
aView.layer.removeAllAnimations()
Run Code Online (Sandbox Code Playgroud)
我相信对于UIView动画,当动画被移除时,视图将跳转到它的结束状态.
采用全新的动画与UIViewAnimationOptionBeginFromCurrentState选项将让你添加动画开始使用在新的动画开始为起点,即时动画状态视图中的新变化新动画的其他海报的做法.
所以,如果你是从底部动画视图留给屏幕的右下方,并在中途过场动画,你发出新的UIView动画移动视图的顶部右侧,使用UIViewAnimationOptionBeginFromCurrentState选项,视图将改变方向,从中间点开始,然后开始向右上角移动.
| 归档时间: |
|
| 查看次数: |
1501 次 |
| 最近记录: |