mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-09-02 18:59:51 +00:00
* [ASNodeController+Beta] Provide an option to allow nodes to own their controllers. We should certainly remove this before moving ASNodeController out of Beta. However, I think it will require at least ASCollectionNode to be able to retain its top level set of node controllers. Without this facility built in, it's very difficult for apps supporting both UIKit and ASDK to manually manage the controllers and keep them in sync with perfect timing. * [ASNodeController] Fix one of the #if's.
50 lines
1.9 KiB
Objective-C
50 lines
1.9 KiB
Objective-C
//
|
|
// ASNodeController+Beta.h
|
|
// Texture
|
|
//
|
|
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
|
|
// This source code is licensed under the BSD-style license found in the
|
|
// LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
|
|
// grant of patent rights can be found in the PATENTS file in the same directory.
|
|
//
|
|
// Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
|
|
// Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
|
|
#import <AsyncDisplayKit/ASDisplayNode.h>
|
|
#import <AsyncDisplayKit/ASDisplayNode+Subclasses.h> // for ASInterfaceState protocol
|
|
|
|
// Until an ASNodeController can be provided in place of an ASCellNode, some apps may prefer to have
|
|
// nodes keep their controllers alive (and a weak reference from controller to node)
|
|
#define INVERT_NODE_CONTROLLER_OWNERSHIP 0
|
|
|
|
/* ASNodeController is currently beta and open to change in the future */
|
|
@interface ASNodeController<__covariant DisplayNodeType : ASDisplayNode *> : NSObject <ASInterfaceStateDelegate>
|
|
|
|
#if INVERT_NODE_CONTROLLER_OWNERSHIP
|
|
@property (nonatomic, weak) DisplayNodeType node;
|
|
#else
|
|
@property (nonatomic, strong) DisplayNodeType node;
|
|
#endif
|
|
|
|
- (void)loadNode;
|
|
|
|
// for descriptions see <ASInterfaceState> definition
|
|
- (void)didEnterVisibleState ASDISPLAYNODE_REQUIRES_SUPER;
|
|
- (void)didExitVisibleState ASDISPLAYNODE_REQUIRES_SUPER;
|
|
|
|
- (void)didEnterDisplayState ASDISPLAYNODE_REQUIRES_SUPER;
|
|
- (void)didExitDisplayState ASDISPLAYNODE_REQUIRES_SUPER;
|
|
|
|
- (void)didEnterPreloadState ASDISPLAYNODE_REQUIRES_SUPER;
|
|
- (void)didExitPreloadState ASDISPLAYNODE_REQUIRES_SUPER;
|
|
|
|
- (void)interfaceStateDidChange:(ASInterfaceState)newState
|
|
fromState:(ASInterfaceState)oldState ASDISPLAYNODE_REQUIRES_SUPER;
|
|
|
|
@end
|