滚动水平表视图时淡入淡出动画

Posted

技术标签:

【中文标题】滚动水平表视图时淡入淡出动画【英文标题】:Fade animation when scrolling horizontal table view 【发布时间】:2012-08-22 15:27:33 【问题描述】:

我有一个水平表格视图,想每 5 秒更改一次图像。我想用淡入淡出动画改变图像,让旧图像淡出,新图像淡入。所以我称之为这个方法:

self.slideTimer = [NSTimer scheduledTimerWithTimeInterval:5
                                                   target:self
                                                 selector:@selector(slideToNextImage)
                                                 userInfo:nil
                                                  repeats:YES]; 

这是我的slideToNextImage:

 self.lastIndexPath = indexPath;
 [UIView beginAnimations:@"FadeAnimations" context:nil];
 [UIView setAnimationDuration:2];
 self.horizontalView.alpha = 0.1f;
 [self.horizontalView.tableView scrollToRowAtIndexPath:self.lastIndexPath
         atScrollPosition:UITableViewScrollPositionMiddle
              animated:NO];
 [UIView commitAnimations];
 [UIView beginAnimations:@"FadeAnimations" context:nil];    
 [UIView setAnimationDuration:2];
 self.horizontalView.alpha = 1.0f;
 [UIView commitAnimations];

我意识到图像褪色太快了,我看到第二张图片滚动时没有褪色动画

【问题讨论】:

你能提供更多关于你想做什么和问题是什么的信息吗?! 请做一些截图来说明你的要求。 抱歉,编辑了我的帖子,希望对您有所帮助 我看不到任何截图。 :( 【参考方案1】:

第二个动画开始而不等待第一个结束。

试试这样的方法:

[UIView animateWithDuration:2.0 animations:^
    self.horizontalView.alpha = 0.1f;
    [self.horizontalView.tableView scrollToRowAtIndexPath:self.lastIndexPath
                                         atScrollPosition:UITableViewScrollPositionMiddle
                                                 animated:NO];

 completion:^(BOOL finished) 
    [UIView animateWithDuration:2 animations:^
        self.horizontalView.alpha = 1.0f;
    ];
];

【讨论】:

谢谢,这行得通,但动画不流畅我看到执行 scrollToRowAtIndexPath: 时有些滞后。有没有可能让它顺利? 这段代码可能不是导致动画断断续续的问题。你还在做什么来消耗处理能力/消耗大量内存? 所以滚动不应该是动画的?您可以在第二个动画之前在完成块内移动 scrollToRow 方法调用! 是的,我这样做了,而且效果很好,但是动画不流畅。执行 scrollToRowAtIndexPath: 时,我看到一些闪烁。我在其他应用程序中看到了相同的功能,这些应用程序运行起来非常流畅。也许我使用了错误的方法?滚动表格视图不是解决方案?

以上是关于滚动水平表视图时淡入淡出动画的主要内容,如果未能解决你的问题,请参考以下文章

Lottie 动画加载时如何淡入淡出?

使用AnimateWindow来实现窗口淡入淡出(主要有四种动画,滚动,滑动,折叠或展开,和淡入淡出)

如何在滚动时使 UIImage 淡入淡出?

在 iOS 7 上的导航视图控制器上使用后退手势时,表格视图单元格上没有淡出和淡入动画

如何在与 z 索引的本机反应中为淡入淡出设置动画?

SwiftUI - 使用淡入淡出动画更改文本