0

我在我的 IOS 应用程序中使用 Async 并且需要 CollectionView 的流畅滚动,所以我尝试使用似乎可以平滑滚动的 ASyncDisplayKit。

所有示例都是用 ObjectiveC 制作的,我想翻译这部分代码:

- (ASCellNodeBlock)tableView:(ASTableView *)tableView    nodeBlockForRowAtIndexPath:(NSIndexPath *)indexPath
{
  PhotoModel *photoModel = [_photoFeed objectAtIndex:indexPath.row];
    // this will be executed on a background thread - important to make sure it's thread safe
    ASCellNode *(^ASCellNodeBlock)() = ^ASCellNode *() {
      PhotoCellNode *cellNode = [[PhotoCellNode alloc] initWithPhotoObject:photoModel];
      return cellNode;
    };

    return ASCellNodeBlock;
}

谁能帮我用 Swift 翻译这段代码?

4

1 回答 1

1

在不了解有关 API 的更多信息的情况下,该函数似乎想要返回一个没有返回ASCellNode.

func tableView(tableView: UITableView, nodeBlockForRowAtIndexPath indexPath: NSIndexPath) -> ASCellNodeBlock {

    let photoModel = photoFeed[indexPath.row]

    let cellNodeBlock:() -> AScellNode = {
        let cellNode = PhotoCellNode(photoObject: photoModel)
        return cellNode
    }

    return cellNodeBlock
}

易于搜索的文档中...

这两个方法,需要返回一个 ASCellNode 或一个 ASCellNodeBlock。ASCellNodeBlock 是一个创建可以在后台线程上运行的 ASCellNode 的块。请注意,ASCellNodes 被 ASTableNode、ASCollectionNode 和 ASPagerNode 使用。

于 2016-07-10T22:09:50.080 回答