mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-24 07:05:35 +00:00
Merge branch 'master' into pr/664
This commit is contained in:
@@ -39,35 +39,8 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface ASDisplayNode (Subclassing)
|
||||
|
||||
|
||||
/** @name View Configuration */
|
||||
|
||||
|
||||
/**
|
||||
* @return The view class to use when creating a new display node instance. Defaults to _ASDisplayView.
|
||||
*/
|
||||
+ (Class)viewClass;
|
||||
|
||||
|
||||
/** @name Properties */
|
||||
|
||||
|
||||
/**
|
||||
* @abstract The scale factor to apply to the rendering.
|
||||
*
|
||||
* @discussion Use setNeedsDisplayAtScale: to set a value and then after display, the display node will set the layer's
|
||||
* contentsScale. This is to prevent jumps when re-rasterizing at a different contentsScale.
|
||||
* Read this property if you need to know the future contentsScale of your layer, eg in drawParameters.
|
||||
*
|
||||
* @see setNeedsDisplayAtScale:
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) CGFloat contentsScaleForDisplay;
|
||||
|
||||
/**
|
||||
* @abstract Whether the view or layer of this display node is currently in a window
|
||||
*/
|
||||
@property (nonatomic, readonly, assign, getter=isInHierarchy) BOOL inHierarchy;
|
||||
|
||||
/**
|
||||
* @abstract Return the calculated layout.
|
||||
*
|
||||
@@ -192,10 +165,9 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
*
|
||||
* @note Called on the display queue and/or main queue (MUST BE THREAD SAFE)
|
||||
*/
|
||||
+ (void)drawRect:(CGRect)bounds
|
||||
withParameters:(nullable id<NSObject>)parameters
|
||||
isCancelled:(asdisplaynode_iscancelled_block_t)isCancelledBlock
|
||||
isRasterizing:(BOOL)isRasterizing;
|
||||
+ (void)drawRect:(CGRect)bounds withParameters:(nullable id <NSObject>)parameters
|
||||
isCancelled:(asdisplaynode_iscancelled_block_t)isCancelledBlock
|
||||
isRasterizing:(BOOL)isRasterizing;
|
||||
|
||||
/**
|
||||
* @summary Delegate override to provide new layer contents as a UIImage.
|
||||
@@ -238,6 +210,33 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
*/
|
||||
- (void)displayDidFinish ASDISPLAYNODE_REQUIRES_SUPER;
|
||||
|
||||
/** @name Observing node-related changes */
|
||||
|
||||
/**
|
||||
* @abstract Called whenever any bit in the ASInterfaceState bitfield is changed.
|
||||
*
|
||||
* @discussion Subclasses may use this to monitor when they become visible, should free cached data, and much more.
|
||||
* @see ASInterfaceState
|
||||
*/
|
||||
- (void)interfaceStateDidChange:(ASInterfaceState)newState fromState:(ASInterfaceState)oldState;
|
||||
|
||||
- (void)visibilityDidChange:(BOOL)isVisible;
|
||||
|
||||
/**
|
||||
* Called just before the view is added to a window.
|
||||
*/
|
||||
- (void)willEnterHierarchy ASDISPLAYNODE_REQUIRES_SUPER;
|
||||
|
||||
/**
|
||||
* Called after the view is removed from the window.
|
||||
*/
|
||||
- (void)didExitHierarchy ASDISPLAYNODE_REQUIRES_SUPER;
|
||||
|
||||
/**
|
||||
* @abstract Whether the view or layer of this display node is currently in a window
|
||||
*/
|
||||
@property (nonatomic, readonly, assign, getter=isInHierarchy) BOOL inHierarchy;
|
||||
|
||||
/**
|
||||
* @abstract Indicates that the node should fetch any external data, such as images.
|
||||
*
|
||||
@@ -247,6 +246,23 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
*/
|
||||
- (void)fetchData ASDISPLAYNODE_REQUIRES_SUPER;
|
||||
|
||||
/**
|
||||
* Provides an opportunity to clear any fetched data (e.g. remote / network or database-queried) on the current node.
|
||||
*
|
||||
* @discussion This will not clear data recursively for all subnodes. Either call -recursivelyClearFetchedData or
|
||||
* selectively clear fetched data.
|
||||
*/
|
||||
- (void)clearFetchedData ASDISPLAYNODE_REQUIRES_SUPER;
|
||||
|
||||
/**
|
||||
* Provides an opportunity to clear backing store and other memory-intensive intermediates, such as text layout managers
|
||||
* on the current node.
|
||||
*
|
||||
* @discussion Called by -recursivelyClearContents. Base class implements self.contents = nil, clearing any backing
|
||||
* store, for asynchronous regeneration when needed.
|
||||
*/
|
||||
- (void)clearContents ASDISPLAYNODE_REQUIRES_SUPER;
|
||||
|
||||
/**
|
||||
* @abstract Indicates that the receiver is about to display its subnodes. This method is not called if there are no
|
||||
* subnodes present.
|
||||
@@ -269,7 +285,6 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
*/
|
||||
- (void)subnodeDisplayDidFinish:(ASDisplayNode *)subnode ASDISPLAYNODE_REQUIRES_SUPER;
|
||||
|
||||
|
||||
/**
|
||||
* @abstract Marks the receiver's bounds as needing to be redrawn, with a scale value.
|
||||
*
|
||||
@@ -297,6 +312,17 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
*/
|
||||
- (void)recursivelySetNeedsDisplayAtScale:(CGFloat)contentsScale;
|
||||
|
||||
/**
|
||||
* @abstract The scale factor to apply to the rendering.
|
||||
*
|
||||
* @discussion Use setNeedsDisplayAtScale: to set a value and then after display, the display node will set the layer's
|
||||
* contentsScale. This is to prevent jumps when re-rasterizing at a different contentsScale.
|
||||
* Read this property if you need to know the future contentsScale of your layer, eg in drawParameters.
|
||||
*
|
||||
* @see setNeedsDisplayAtScale:
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) CGFloat contentsScaleForDisplay;
|
||||
|
||||
|
||||
/** @name Touch handling */
|
||||
|
||||
@@ -363,38 +389,6 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
*/
|
||||
- (nullable UIView *)hitTest:(CGPoint)point withEvent:(nullable UIEvent *)event;
|
||||
|
||||
|
||||
/** @name Observing node-related changes */
|
||||
|
||||
|
||||
/**
|
||||
* Called just before the view is added to a window.
|
||||
*/
|
||||
- (void)willEnterHierarchy ASDISPLAYNODE_REQUIRES_SUPER;
|
||||
|
||||
/**
|
||||
* Called after the view is removed from the window.
|
||||
*/
|
||||
- (void)didExitHierarchy ASDISPLAYNODE_REQUIRES_SUPER;
|
||||
|
||||
/**
|
||||
* Provides an opportunity to clear backing store and other memory-intensive intermediates, such as text layout managers
|
||||
* on the current node.
|
||||
*
|
||||
* @discussion Called by -recursivelyClearContents. Base class implements self.contents = nil, clearing any backing
|
||||
* store, for asynchronous regeneration when needed.
|
||||
*/
|
||||
- (void)clearContents ASDISPLAYNODE_REQUIRES_SUPER;
|
||||
|
||||
/**
|
||||
* Provides an opportunity to clear any fetched data (e.g. remote / network or database-queried) on the current node.
|
||||
*
|
||||
* @discussion This will not clear data recursively for all subnodes. Either call -recursivelyClearFetchedData or
|
||||
* selectively clear fetched data.
|
||||
*/
|
||||
- (void)clearFetchedData ASDISPLAYNODE_REQUIRES_SUPER;
|
||||
|
||||
|
||||
/** @name Placeholders */
|
||||
|
||||
/**
|
||||
@@ -414,6 +408,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
*/
|
||||
- (nullable UIImage *)placeholderImage;
|
||||
|
||||
|
||||
/** @name Description */
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user