123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #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
|