ios - ScrollViewDidScroll 中的动画

标签 ios uiscrollview

我通过修改 PullToRefresh 库在 scrollViewDidScroll 中触发了 UIView 动画。我想要的是在用户开始拉动时触发动画,并在拉动以刷新标题 View 离开屏幕时终止它。但是,动画仅在用户释放拉动时起作用;在用户继续拉动期间,动画不起作用......非常感谢您提前提供的帮助! :)

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{   
    if (scrollView.isDragging) {
        if (refreshHeaderView.state == EGOOPullRefreshPulling && scrollView.contentOffset.y > -65.0f && scrollView.contentOffset.y < 0.0f && !_reloading) {
            [refreshHeaderView setState:EGOOPullRefreshNormal];
            if (timer) {
                [timer invalidate];
                timer = nil;
            }
        } else if (refreshHeaderView.state == EGOOPullRefreshNormal && scrollView.contentOffset.y < -65.0f && !_reloading) {
            [refreshHeaderView setState:EGOOPullRefreshPulling];
            if (!timer) {
                timer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(startMyAnimation) userInfo: nil repeats: YES];
            }
        }
    }
}

最佳答案

通常,当用户在 ScrollView 中拖动时,计时器不会触发。

尝试像这样安排计时器:

timer = [NSTimer timerWithTimeInterval:0.5 target:self selector:@selector(startMyAnimation) userInfo: nil repeats: YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

关于ios - ScrollViewDidScroll 中的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15417822/

相关文章:

IOS, swift : How come my subclass of UIScrollView doesn't scroll?

ios - 为什么 collectionView 单元格的布局在应该相同时会有所不同?

ios - Cocoa-Touch - 使只读 UITextField 成为第一响应者

ios - 获取操作系统名称(例如 iOS)

iphone - 在 iPhone 中实现撤消重做的最佳实践

iphone - 将上一个 View Controller 设置为当前 View Controller 的属性

ios - UIScrollView - UILabel 如何将内容推到屏幕外

在 UIScrollView 中具有完整高度的 iOS UITableView

iphone - 在主uiview的 subview 上获取点击事件

cocoa-touch - 在屏幕上向后滚动时,UITableViewCell 会被重新选择