当NSTimer触发reloadData并在iPad上的iOS 7中启用弹跳时,UICollectionView偶尔会崩溃

时间:2013-09-26 20:23:19

标签: crash ios7 uicollectionview nstimer bounce

我做错了什么或者系统有问题?

非常简单的演示:https://github.com/IgorTavcar/UICollectionViewBug

这是一个集合视图和一个由

启动的周期性触发器
- (void)viewDidAppear:(BOOL)animated {
    self.timer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(tick) userInfo:nil repeats:TRUE];
}

每个tick都会调用集合视图的roladData

- (void)tick {
    [self.collectionView reloadData];
}

如果滚动视图

@property(nonatomic) BOOL bounces

是TRUE

然后应用崩溃EXC_BAD_ACCESS之后的最大值。 15秒的密集滚动/弹跳/.

有什么建议吗?

我也尝试过

dispatch_async(dispatch_get_main_queue(), ^{
    self.timer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(tick) userInfo:nil repeats:TRUE];
});

self.timer = [NSTimer timerWithTimeInterval:0.5 target:self selector:@selector(tick) userInfo:nil repeats:TRUE];
[[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];

...

1 个答案:

答案 0 :(得分:0)

修正:

https://github.com/IgorTavcar/UICollectionViewBug/issues/1

从故事板中的集合视图单元格取消选中“启用用户交互”和“多次触摸”。

使用手势识别器代替处理输入。