如何在 AsyncDisplayKit 中为 AsTableNode 创建框架?
How to create a frame for AsTableNode in AsyncDisplayKit?
我使用 facebook's AsyncDisplayKi
t 来 运行 我的项目,在那里我找到了一个名为“ASDKgram”的示例项目。它使用节点而不是 TableViewCells。默认情况下,'AsTableNodes
' aka TableView 显示在屏幕的边界。
我希望我的 tableView
或 AsTableNodes
从 uiScreen 的每个边缘显示 10pixels
。
问题:如何创建具有特定框架的 AsTableNodes?
如果有人已经完成 AsyncDisplayKit
,请回复。
这是该项目的 link https://github.com/facebook/AsyncDisplayKit/tree/master/examples/ASDKgram
提前致谢。
使用 ASCollectionNode
首先替换
tableNode = [[ASTableNode alloc] init];
和
tableNode = [[ASCollectionNode alloc] initWithCollectionViewLayout:[UICollectionViewFlowLayout new]];
然后将其添加到 ASViewController
- (void)viewDidLoad {
[super viewDidLoad];
_tableNode.view.contentInset = UIEdgeInsetsMake(0, 10, 0, 10);
}
- (ASSizeRange)collectionView:(ASCollectionView *)collectionView constrainedSizeForNodeAtIndexPath:(NSIndexPath *)indexPath {
return ASSizeRangeMake(
CGSizeMake(0, 0),
CGSizeMake(self.view.frame.size.width - 2*10, CGFLOAT_MAX)
);
}
- (NSInteger)collectionNode:(ASCollectionNode *)collectionNode numberOfItemsInSection:(NSInteger)section {
return [_photoFeed numberOfItemsInFeed];
}
- (ASCellNodeBlock)collectionNode:(ASCollectionNode *)collectionNode nodeBlockForItemAtIndexPath:(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;
}
结果:
我使用 facebook's AsyncDisplayKi
t 来 运行 我的项目,在那里我找到了一个名为“ASDKgram”的示例项目。它使用节点而不是 TableViewCells。默认情况下,'AsTableNodes
' aka TableView 显示在屏幕的边界。
我希望我的 tableView
或 AsTableNodes
从 uiScreen 的每个边缘显示 10pixels
。
问题:如何创建具有特定框架的 AsTableNodes?
如果有人已经完成 AsyncDisplayKit
,请回复。
这是该项目的 link https://github.com/facebook/AsyncDisplayKit/tree/master/examples/ASDKgram
提前致谢。
使用 ASCollectionNode
首先替换
tableNode = [[ASTableNode alloc] init];
和
tableNode = [[ASCollectionNode alloc] initWithCollectionViewLayout:[UICollectionViewFlowLayout new]];
然后将其添加到 ASViewController
- (void)viewDidLoad {
[super viewDidLoad];
_tableNode.view.contentInset = UIEdgeInsetsMake(0, 10, 0, 10);
}
- (ASSizeRange)collectionView:(ASCollectionView *)collectionView constrainedSizeForNodeAtIndexPath:(NSIndexPath *)indexPath {
return ASSizeRangeMake(
CGSizeMake(0, 0),
CGSizeMake(self.view.frame.size.width - 2*10, CGFLOAT_MAX)
);
}
- (NSInteger)collectionNode:(ASCollectionNode *)collectionNode numberOfItemsInSection:(NSInteger)section {
return [_photoFeed numberOfItemsInFeed];
}
- (ASCellNodeBlock)collectionNode:(ASCollectionNode *)collectionNode nodeBlockForItemAtIndexPath:(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;
}
结果: