mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 22:55:00 +00:00
initial design
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#import <AsyncDisplayKit/ASBaseDefines.h>
|
||||
#import <AsyncDisplayKit/ASBatchContext.h>
|
||||
#import <AsyncDisplayKit/ASCollectionViewFlowLayoutInspector.h>
|
||||
#import <AsyncDisplayKit/ASCollectionViewLayoutFacilitatorProtocol.h>
|
||||
|
||||
@class ASCellNode;
|
||||
@class ASCollectionNode;
|
||||
@@ -43,6 +44,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
*/
|
||||
- (instancetype)initWithCollectionViewLayout:(UICollectionViewLayout *)layout;
|
||||
- (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout;
|
||||
- (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout layoutFacilitator:(id<ASCollectionViewLayoutFacilitatorProtocol>)layoutFacilitator;
|
||||
|
||||
// The corresponding ASCollectionNode, which exists even if directly allocating & handling the view class.
|
||||
@property (nonatomic, weak, readonly) ASCollectionNode *collectionNode;
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
#import "UICollectionViewLayout+ASConvenience.h"
|
||||
#import "_ASDisplayLayer.h"
|
||||
|
||||
#import "ASCollectionViewLayoutFacilitatorProtocol.h"
|
||||
|
||||
static const NSUInteger kASCollectionViewAnimationNone = UITableViewRowAnimationNone;
|
||||
static const ASSizeRange kInvalidSizeRange = {CGSizeZero, CGSizeZero};
|
||||
static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell";
|
||||
@@ -68,6 +70,8 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell";
|
||||
ASCollectionViewLayoutController *_layoutController;
|
||||
ASCollectionViewFlowLayoutInspector *_flowLayoutInspector;
|
||||
|
||||
id<ASCollectionViewLayoutFacilitatorProtocol> _layoutFacilitator;
|
||||
|
||||
BOOL _performingBatchUpdates;
|
||||
NSMutableArray *_batchUpdateBlocks;
|
||||
|
||||
@@ -137,6 +141,13 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell";
|
||||
return [self _initWithFrame:frame collectionViewLayout:layout ownedByNode:NO];
|
||||
}
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout layoutFacilitator:(id<ASCollectionViewLayoutFacilitatorProtocol>)layoutFacilitator
|
||||
{
|
||||
self = [self _initWithFrame:frame collectionViewLayout:layout ownedByNode:NO];
|
||||
_layoutFacilitator = layoutFacilitator;
|
||||
return self;
|
||||
}
|
||||
|
||||
// FIXME: This method is deprecated and will probably be removed in or shortly after 2.0.
|
||||
- (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout asyncDataFetching:(BOOL)asyncDataFetchingEnabled
|
||||
{
|
||||
@@ -412,12 +423,14 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell";
|
||||
- (void)insertSections:(NSIndexSet *)sections
|
||||
{
|
||||
ASDisplayNodeAssertMainThread();
|
||||
[_layoutFacilitator collectionViewInsertingSectionsAtIndexSet:sections];
|
||||
[_dataController insertSections:sections withAnimationOptions:kASCollectionViewAnimationNone];
|
||||
}
|
||||
|
||||
- (void)deleteSections:(NSIndexSet *)sections
|
||||
{
|
||||
ASDisplayNodeAssertMainThread();
|
||||
[_layoutFacilitator collectionViewDeletingSectionsAtIndexSet:sections];
|
||||
[_dataController deleteSections:sections withAnimationOptions:kASCollectionViewAnimationNone];
|
||||
}
|
||||
|
||||
@@ -436,6 +449,7 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell";
|
||||
- (void)insertItemsAtIndexPaths:(NSArray *)indexPaths
|
||||
{
|
||||
ASDisplayNodeAssertMainThread();
|
||||
[_layoutFacilitator collectionViewInsertingCellAtIndexPaths:indexPaths];
|
||||
[_dataController insertRowsAtIndexPaths:indexPaths withAnimationOptions:kASCollectionViewAnimationNone];
|
||||
}
|
||||
|
||||
|
||||
20
AsyncDisplayKit/ASCollectionViewLayoutFacilitatorProtocol.h
Normal file
20
AsyncDisplayKit/ASCollectionViewLayoutFacilitatorProtocol.h
Normal file
@@ -0,0 +1,20 @@
|
||||
//
|
||||
// ASCollectionViewLayoutFacilitatorProtocol.h
|
||||
// Pods
|
||||
//
|
||||
// Created by Bin Liu on 1/13/16.
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef ASCollectionViewLayoutFacilitatorProtocol_h
|
||||
#define ASCollectionViewLayoutFacilitatorProtocol_h
|
||||
|
||||
@protocol ASCollectionViewLayoutFacilitatorProtocol <NSObject>
|
||||
|
||||
- (void)collectionViewInsertingCellAtIndexPaths:(NSArray *)indexPaths;
|
||||
- (void)collectionViewInsertingSectionsAtIndexSet:(NSIndexSet *)indexes;
|
||||
- (void)collectionViewDeletingSectionsAtIndexSet:(NSIndexSet *)indexes;
|
||||
|
||||
@end
|
||||
|
||||
#endif /* ASCollectionViewLayoutFacilitatorProtocol_h */
|
||||
Reference in New Issue
Block a user