Music_Player3/Pods/DownloadButton/Pod/Classes/NSLayoutConstraint+PKDownloadButton.m
2024-05-29 17:31:45 +08:00

100 lines
5.3 KiB
Objective-C

#import "NSLayoutConstraint+PKDownloadButton.h"
@implementation NSLayoutConstraint (PKDownloadButton)
+ (NSArray *)constraintsForWrappedSubview:(UIView *)view withInsets:(UIEdgeInsets)insets {
NSArray *horizontalConstraints = [self horizontalConstraintsForWrappedSubview:view withInsets:insets];
NSArray *verticalConstraints = [self verticalConstraintsForWrappedSubview:view withInsets:insets];
NSMutableArray *resultArray = [NSMutableArray arrayWithCapacity:[horizontalConstraints count] + [verticalConstraints count]];
[resultArray addObjectsFromArray:horizontalConstraints];
[resultArray addObjectsFromArray:verticalConstraints];
return resultArray;
}
+ (NSArray *)horizontalConstraintsForWrappedSubview:(UIView *)view withInsets:(UIEdgeInsets)insets {
NSString *horizontalConstraintsFormat = [NSString stringWithFormat:@"H:|-(%d)-[view]-(%d)-|",
(int)insets.left,
(int)roundf(insets.right)];
NSArray *horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:horizontalConstraintsFormat
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(view)];
return horizontalConstraints;
}
+ (NSArray *)verticalConstraintsForWrappedSubview:(UIView *)view withInsets:(UIEdgeInsets)insets {
NSString *verticalConstraintsFormat = [NSString stringWithFormat:@"V:|-(%d)-[view]-(%d)-|", (int)insets.top, (int)insets.bottom];
NSArray *verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:verticalConstraintsFormat
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(view)];
return verticalConstraints;
}
+ (NSLayoutConstraint *)constraintForView:(UIView *)view withWidth:(CGFloat)width {
return [NSLayoutConstraint constraintWithItem:view
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:width];
}
+ (NSLayoutConstraint *)constraintForView:(UIView *)view withHeight:(CGFloat)height {
return [NSLayoutConstraint constraintWithItem:view
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:height];
}
+ (NSArray *)constraintsForView:(UIView *)view withSize:(CGSize)size {
NSLayoutConstraint *width = [NSLayoutConstraint constraintForView:view
withWidth:size.width];
NSLayoutConstraint *height = [NSLayoutConstraint constraintForView:view
withHeight:size.height];
return @[width, height];
}
+ (NSArray *)constraintsWithVisualFormat:(NSString *)format views:(NSDictionary *)views {
return [self constraintsWithVisualFormat:format options:0 metrics:nil views:views];
}
+ (NSLayoutConstraint *)constraintForCenterByXView:(UIView *)overlay withView:(UIView *)view {
return [NSLayoutConstraint constraintWithItem:overlay
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:view
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0.0];
}
+ (NSLayoutConstraint *)constraintForCenterByYView:(UIView *)overlay withView:(UIView *)view {
return [NSLayoutConstraint constraintWithItem:overlay
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:view
attribute:NSLayoutAttributeCenterY
multiplier:1.0
constant:0.0];
}
+ (NSArray *)constraintsForCenterView:(UIView *)overlay {
return [self constraintsForCenterView:overlay withView:overlay.superview];
}
+ (NSArray *)constraintsForCenterView:(UIView *)overlay withView:(UIView *)view {
NSMutableArray *constraints = [NSMutableArray array];
[constraints addObject:[self constraintForCenterByXView:overlay withView:view]];
[constraints addObject:[self constraintForCenterByYView:overlay withView:view]];
return constraints;
}
@end