【发布时间】:2011-05-11 00:06:18
【问题描述】:
我正在尝试为名为 addToPlaylist 和 removeFromPlayList 的 UITableViewCell 中的 2 个 UIButton 设置动画(它们在被滑动后向右移动)并且正在使用如下块
[UIView animateWithDuration:0.25 animations:^{
self.addToPlaylist.center = CGPointMake(contentsSize.width + (buttonSize.width / 2), (buttonSize.height / 2));
self.removeFromPlaylist.center = CGPointMake(contentsSize.width + (buttonSize.width / 2), (buttonSize.height / 2));
myImage.alpha = 1.0;
}
completion:^ (BOOL finished)
{
if (finished) {
// Revert image view to original.
NSLog(@"Is completed");
self.addToPlaylist.hidden = YES;
self.removeFromPlaylist.hidden = YES;
self.hasSwipeOpen = NO;
}
}];
完成后我想隐藏按钮以尝试减少滚动等重绘。
此代码位于 UITableViewControllers 方法 scrollViewWillBeginDragging 中调用的 '-(void) swipeOff' 中,如下所示:
- (void)scrollViewWillBeginDragging:(UIScrollView *) scrollView
{
for (MediaCellView* cell in [self.tableView visibleCells]) {
if (cell.hasSwipeOpen) {
[cell swipeOff];
}
}
}
问题是完成代码,如果我删除它或将它设置为 nil 一切都很好,如果我包含它,我会得到一个 EXC_BAD_ACCESS。即使我将它包含在 if(finished) 中的任何或所有行中都已注释掉
我是否以错误的方式使用它,非常感谢任何帮助。
谢谢
【问题讨论】:
-
如果你省略分配并保留 NSLog,代码是否可以正常工作而不会崩溃?它总是崩溃还是仅仅在 tableview 滚动时崩溃?
-
嗨尼克,它仍然会崩溃,只有 NSLog 在那里,只有当 tableView 滚动时