mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 14:20:20 +00:00
-[UIView addSubnode:], -[CALayer addSubnode:].
Bring back this convenience API -- it disappeared somewhere along the line while we were building Paper. This is totally trivial, but conveniently won't break if you layer-back a leaf node. Closes #278.
This commit is contained in:
@@ -520,3 +520,19 @@ typedef CALayer *(^ASDisplayNodeLayerBlock)();
|
||||
*/
|
||||
@interface ASDisplayNode (ASDisplayNodeAsyncTransactionContainer) <ASDisplayNodeAsyncTransactionContainer>
|
||||
@end
|
||||
|
||||
|
||||
@interface UIView (AsyncDisplayKit)
|
||||
/**
|
||||
* Convenience method, equivalent to [view addSubview:node.view] or [view.layer addSublayer:node.layer] if layer-backed.
|
||||
*/
|
||||
- (void)addSubnode:(ASDisplayNode *)node;
|
||||
@end
|
||||
|
||||
|
||||
@interface CALayer (AsyncDisplayKit)
|
||||
/**
|
||||
* Convenience method, equivalent to [layer addSublayer:node.layer].
|
||||
*/
|
||||
- (void)addSubnode:(ASDisplayNode *)node;
|
||||
@end
|
||||
@@ -1751,3 +1751,26 @@ static const char *ASDisplayNodeAssociatedNodeKey = "ASAssociatedNode";
|
||||
@implementation CALayer (ASDisplayNodeInternal)
|
||||
@dynamic asyncdisplaykit_node;
|
||||
@end
|
||||
|
||||
|
||||
@implementation UIView (AsyncDisplayKit)
|
||||
|
||||
- (void)addSubnode:(ASDisplayNode *)node
|
||||
{
|
||||
if (node.layerBacked) {
|
||||
[self.layer addSublayer:node.layer];
|
||||
} else {
|
||||
[self addSubview:node.view];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation CALayer (AsyncDisplayKit)
|
||||
|
||||
- (void)addSubnode:(ASDisplayNode *)node
|
||||
{
|
||||
[self addSublayer:node.layer];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
{
|
||||
[super viewDidLoad];
|
||||
|
||||
[self.view addSubview:_textNode.view];
|
||||
[self.view addSubnode:_textNode];
|
||||
|
||||
[self.view addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)]];
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
{
|
||||
[super viewDidLoad];
|
||||
|
||||
[self.view addSubview:_imageNode.view];
|
||||
[self.view addSubnode:_imageNode];
|
||||
[self.view addSubview:_textLabel];
|
||||
|
||||
[self start];
|
||||
|
||||
@@ -89,8 +89,8 @@
|
||||
// this placeholder will cover all subnodes while they are displaying, just a like a stage curtain!
|
||||
_postNode.placeholderEnabled = NO;
|
||||
|
||||
[self.view addSubview:_imageNode.view];
|
||||
[self.view addSubview:_postNode.view];
|
||||
[self.view addSubnode:_imageNode];
|
||||
[self.view addSubnode:_postNode];
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user