6

现在,我正在制作一个UITableView涉及UITableView Cells左右滑动的 iPad 应用程序,我有一个NSNotification基础系统,可以让UITableViewController知道何时发生幻灯片。我需要UITableViewCell在移动的单元格下方和移动单元格下方的单元格上方显示一个。我想做一个清晰的应用程序中看到的折叠动画,但没有pinch gesture(即自动折叠)。我找到了这个名为MPFoldTransition的库。但是,它不支持UITableView. 我还研究了pinch gesture教程中的,但是本教程并没有告诉我如何自动为动画制作动画,因为它需要用户进行捏合手势。我浏览了网络,似乎找不到任何东西。我将不胜感激任何帮助。

谢谢

4

1 回答 1

7

MPFoldTransition使用's 完全可以做到这一点transitionFromView: toView:...。我创建了一个示例项目,如果您愿意,我可以链接到该项目,但这一切都归结为:

- (void)addNewTableCellToIndexPath:(NSIndexPath *)indexPath {
    // Add the new object to the datasource and reload the row
    [dataSourceArray insertObject:@"New" atIndex:indexPath.row];

    [self.tableView beginUpdates];
    [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
    [self.tableView endUpdates];

    //setup temporary cell
    UITableViewCell *fromCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
    [fromCell setBackgroundColor:[[self.tableView cellForRowAtIndexPath:indexPath] backgroundColor]];
    //setup cell to animate to
    UITableViewCell *toCell = [self.tableView cellForRowAtIndexPath:indexPath];
    [toCell.textLabel setText:dataSourceArray[indexPath.row]];

    //add fold animation to the cells create above
    [MPFoldTransition transitionFromView:fromCell
                                  toView:toCell
                                duration:0.4
                                   style:MPFoldStyleUnfold
                        transitionAction:MPTransitionActionNone
                              completion:^(BOOL finished) {
                                  [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                              }];
}

About 是一个将索引路径作为参数的函数。将您希望添加带有折叠过渡的单元格的索引路径发送给它,它将在表格上创建一个空白临时单元格以进行折叠,同时将其余单元格向下移动。它并不完美,主要是因为我还没有找到一种方法来改变UITableViewRowAnimation's 的持续时间以与折叠持续时间完美匹配。

无论哪种方式,这应该足以让你继续前进。希望这可以帮助!

于 2013-03-12T15:55:50.823 回答