mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-24 07:05:35 +00:00
Merge pull request #1928 from maicki/MSAddRelativeSizePercentage
[ASLayout] Add convenience functions to create relative sizes with percentage
This commit is contained in:
@@ -2076,7 +2076,7 @@ void recursivelyTriggerDisplayForLayer(CALayer *layer, BOOL shouldBlock)
|
||||
ASDN::MutexLocker l(_propertyLock);
|
||||
if (! CGSizeEqualToSize(_preferredFrameSize, preferredFrameSize)) {
|
||||
_preferredFrameSize = preferredFrameSize;
|
||||
self.sizeRange = ASRelativeSizeRangeMake(ASRelativeSizeMakeWithCGSize(_preferredFrameSize), ASRelativeSizeMakeWithCGSize(_preferredFrameSize));
|
||||
self.sizeRange = ASRelativeSizeRangeMakeWithExactCGSize(_preferredFrameSize);
|
||||
[self invalidateCalculatedLayout];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,9 +12,7 @@
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <AsyncDisplayKit/ASBaseDefines.h>
|
||||
|
||||
/**
|
||||
A dimension relative to constraints to be provided in the future.
|
||||
*/
|
||||
/** A dimension relative to constraints to be provided in the future. */
|
||||
typedef NS_ENUM(NSInteger, ASRelativeDimensionType) {
|
||||
/** Just a number. It will always resolve to exactly this amount. This is the default type. */
|
||||
ASRelativeDimensionTypePoints,
|
||||
@@ -40,7 +38,7 @@ extern ASRelativeDimension const ASRelativeDimensionUnconstrained;
|
||||
ASDISPLAYNODE_EXTERN_C_BEGIN
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
#pragma mark ASRelativeDimension
|
||||
#pragma mark - ASRelativeDimension
|
||||
|
||||
extern ASRelativeDimension ASRelativeDimensionMake(ASRelativeDimensionType type, CGFloat value);
|
||||
|
||||
@@ -56,8 +54,7 @@ extern NSString *NSStringFromASRelativeDimension(ASRelativeDimension dimension);
|
||||
|
||||
extern CGFloat ASRelativeDimensionResolve(ASRelativeDimension dimension, CGFloat parent);
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark ASSizeRange
|
||||
#pragma mark - ASSizeRange
|
||||
|
||||
extern ASSizeRange ASSizeRangeMake(CGSize min, CGSize max);
|
||||
|
||||
@@ -68,8 +65,8 @@ extern ASSizeRange ASSizeRangeMakeExactSize(CGSize size);
|
||||
extern CGSize ASSizeRangeClamp(ASSizeRange sizeRange, CGSize size);
|
||||
|
||||
/**
|
||||
Intersects another size range. If the other size range does not overlap in either dimension, this size range
|
||||
"wins" by returning a single point within its own range that is closest to the non-overlapping range.
|
||||
* Intersects another size range. If the other size range does not overlap in either dimension, this size range
|
||||
* "wins" by returning a single point within its own range that is closest to the non-overlapping range.
|
||||
*/
|
||||
extern ASSizeRange ASSizeRangeIntersect(ASSizeRange sizeRange, ASSizeRange otherSizeRange);
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
ASRelativeDimension const ASRelativeDimensionUnconstrained = {};
|
||||
|
||||
#pragma mark ASRelativeDimension
|
||||
#pragma mark - ASRelativeDimension
|
||||
|
||||
ASRelativeDimension ASRelativeDimensionMake(ASRelativeDimensionType type, CGFloat value)
|
||||
{
|
||||
@@ -61,8 +61,7 @@ CGFloat ASRelativeDimensionResolve(ASRelativeDimension dimension, CGFloat parent
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark ASSizeRange
|
||||
#pragma mark - ASSizeRange
|
||||
|
||||
ASSizeRange ASSizeRangeMake(CGSize min, CGSize max)
|
||||
{
|
||||
|
||||
@@ -35,14 +35,16 @@ extern ASRelativeSizeRange const ASRelativeSizeRangeUnconstrained;
|
||||
ASDISPLAYNODE_EXTERN_C_BEGIN
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark ASRelativeSize
|
||||
#pragma mark - ASRelativeSize
|
||||
|
||||
extern ASRelativeSize ASRelativeSizeMake(ASRelativeDimension width, ASRelativeDimension height);
|
||||
|
||||
/** Convenience constructor to provide size in Points. */
|
||||
extern ASRelativeSize ASRelativeSizeMakeWithCGSize(CGSize size);
|
||||
|
||||
/** Convenience constructor to provide size in Percentage. */
|
||||
extern ASRelativeSize ASRelativeSizeMakeWithPercent(CGFloat percent);
|
||||
|
||||
/** Resolve this relative size relative to a parent size. */
|
||||
extern CGSize ASRelativeSizeResolveSize(ASRelativeSize relativeSize, CGSize parentSize);
|
||||
|
||||
@@ -50,8 +52,7 @@ extern BOOL ASRelativeSizeEqualToRelativeSize(ASRelativeSize lhs, ASRelativeSize
|
||||
|
||||
extern NSString *NSStringFromASRelativeSize(ASRelativeSize size);
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark ASRelativeSizeRange
|
||||
#pragma mark - ASRelativeSizeRange
|
||||
|
||||
extern ASRelativeSizeRange ASRelativeSizeRangeMake(ASRelativeSize min, ASRelativeSize max);
|
||||
|
||||
@@ -60,16 +61,15 @@ extern ASRelativeSizeRange ASRelativeSizeRangeMakeWithExactRelativeSize(ASRelati
|
||||
|
||||
extern ASRelativeSizeRange ASRelativeSizeRangeMakeWithExactCGSize(CGSize exact);
|
||||
|
||||
extern ASRelativeSizeRange ASRelativeSizeRangeMakeWithExactPercent(CGFloat percent);
|
||||
|
||||
extern ASRelativeSizeRange ASRelativeSizeRangeMakeWithExactRelativeDimensions(ASRelativeDimension exactWidth,
|
||||
ASRelativeDimension exactHeight);
|
||||
|
||||
extern BOOL ASRelativeSizeRangeEqualToRelativeSizeRange(ASRelativeSizeRange lhs, ASRelativeSizeRange rhs);
|
||||
|
||||
/**
|
||||
Provided a parent size, compute final dimensions for this RelativeSizeRange to arrive at a SizeRange.
|
||||
*/
|
||||
extern ASSizeRange ASRelativeSizeRangeResolve(ASRelativeSizeRange relativeSizeRange,
|
||||
CGSize parentSize);
|
||||
/** Provided a parent size, compute final dimensions for this RelativeSizeRange to arrive at a SizeRange. */
|
||||
extern ASSizeRange ASRelativeSizeRangeResolve(ASRelativeSizeRange relativeSizeRange, CGSize parentSize);
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
ASDISPLAYNODE_EXTERN_C_END
|
||||
|
||||
@@ -12,8 +12,7 @@
|
||||
|
||||
ASRelativeSizeRange const ASRelativeSizeRangeUnconstrained = {};
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark ASRelativeSize
|
||||
#pragma mark - ASRelativeSize
|
||||
|
||||
ASRelativeSize ASRelativeSizeMake(ASRelativeDimension width, ASRelativeDimension height)
|
||||
{
|
||||
@@ -26,6 +25,12 @@ ASRelativeSize ASRelativeSizeMakeWithCGSize(CGSize size)
|
||||
ASRelativeDimensionMakeWithPoints(size.height));
|
||||
}
|
||||
|
||||
ASRelativeSize ASRelativeSizeMakeWithPercent(CGFloat percent)
|
||||
{
|
||||
return ASRelativeSizeMake(ASRelativeDimensionMakeWithPercent(percent),
|
||||
ASRelativeDimensionMakeWithPercent(percent));
|
||||
}
|
||||
|
||||
CGSize ASRelativeSizeResolveSize(ASRelativeSize relativeSize, CGSize parentSize)
|
||||
{
|
||||
return CGSizeMake(ASRelativeDimensionResolve(relativeSize.width, parentSize.width),
|
||||
@@ -45,8 +50,7 @@ NSString *NSStringFromASRelativeSize(ASRelativeSize size)
|
||||
NSStringFromASRelativeDimension(size.height)];
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark ASRelativeSizeRange
|
||||
#pragma mark - ASRelativeSizeRange
|
||||
|
||||
ASRelativeSizeRange ASRelativeSizeRangeMake(ASRelativeSize min, ASRelativeSize max)
|
||||
{
|
||||
@@ -63,6 +67,11 @@ ASRelativeSizeRange ASRelativeSizeRangeMakeWithExactCGSize(CGSize exact)
|
||||
return ASRelativeSizeRangeMakeWithExactRelativeSize(ASRelativeSizeMakeWithCGSize(exact));
|
||||
}
|
||||
|
||||
ASRelativeSizeRange ASRelativeSizeRangeMakeWithExactPercent(CGFloat percent)
|
||||
{
|
||||
return ASRelativeSizeRangeMakeWithExactRelativeSize(ASRelativeSizeMakeWithPercent(percent));
|
||||
}
|
||||
|
||||
ASRelativeSizeRange ASRelativeSizeRangeMakeWithExactRelativeDimensions(ASRelativeDimension exactWidth,
|
||||
ASRelativeDimension exactHeight)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user