mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 14:45:21 +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>
|
@interface ASDisplayNode (ASDisplayNodeAsyncTransactionContainer) <ASDisplayNodeAsyncTransactionContainer>
|
||||||
@end
|
@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)
|
@implementation CALayer (ASDisplayNodeInternal)
|
||||||
@dynamic asyncdisplaykit_node;
|
@dynamic asyncdisplaykit_node;
|
||||||
@end
|
@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];
|
[super viewDidLoad];
|
||||||
|
|
||||||
[self.view addSubview:_textNode.view];
|
[self.view addSubnode:_textNode];
|
||||||
|
|
||||||
[self.view addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)]];
|
[self.view addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)]];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
{
|
{
|
||||||
[super viewDidLoad];
|
[super viewDidLoad];
|
||||||
|
|
||||||
[self.view addSubview:_imageNode.view];
|
[self.view addSubnode:_imageNode];
|
||||||
[self.view addSubview:_textLabel];
|
[self.view addSubview:_textLabel];
|
||||||
|
|
||||||
[self start];
|
[self start];
|
||||||
|
|||||||
@@ -89,8 +89,8 @@
|
|||||||
// this placeholder will cover all subnodes while they are displaying, just a like a stage curtain!
|
// this placeholder will cover all subnodes while they are displaying, just a like a stage curtain!
|
||||||
_postNode.placeholderEnabled = NO;
|
_postNode.placeholderEnabled = NO;
|
||||||
|
|
||||||
[self.view addSubview:_imageNode.view];
|
[self.view addSubnode:_imageNode];
|
||||||
[self.view addSubview:_postNode.view];
|
[self.view addSubnode:_postNode];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user