From 3e8437ae559487362fae3525beb79c534c213a51 Mon Sep 17 00:00:00 2001
From: 单军华
Date: Thu, 12 Jul 2018 13:44:34 +0800
Subject: [PATCH] bug修复和功能优化

---
 screendisplay/Pods/Masonry/Masonry/NSArray+MASAdditions.m |  162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 162 insertions(+), 0 deletions(-)

diff --git a/screendisplay/Pods/Masonry/Masonry/NSArray+MASAdditions.m b/screendisplay/Pods/Masonry/Masonry/NSArray+MASAdditions.m
new file mode 100755
index 0000000..831d8cd
--- /dev/null
+++ b/screendisplay/Pods/Masonry/Masonry/NSArray+MASAdditions.m
@@ -0,0 +1,162 @@
+//
+//  NSArray+MASAdditions.m
+//  
+//
+//  Created by Daniel Hammond on 11/26/13.
+//
+//
+
+#import "NSArray+MASAdditions.h"
+#import "View+MASAdditions.h"
+
+@implementation NSArray (MASAdditions)
+
+- (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block {
+    NSMutableArray *constraints = [NSMutableArray array];
+    for (MAS_VIEW *view in self) {
+        NSAssert([view isKindOfClass:[MAS_VIEW class]], @"All objects in the array must be views");
+        [constraints addObjectsFromArray:[view mas_makeConstraints:block]];
+    }
+    return constraints;
+}
+
+- (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block {
+    NSMutableArray *constraints = [NSMutableArray array];
+    for (MAS_VIEW *view in self) {
+        NSAssert([view isKindOfClass:[MAS_VIEW class]], @"All objects in the array must be views");
+        [constraints addObjectsFromArray:[view mas_updateConstraints:block]];
+    }
+    return constraints;
+}
+
+- (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block {
+    NSMutableArray *constraints = [NSMutableArray array];
+    for (MAS_VIEW *view in self) {
+        NSAssert([view isKindOfClass:[MAS_VIEW class]], @"All objects in the array must be views");
+        [constraints addObjectsFromArray:[view mas_remakeConstraints:block]];
+    }
+    return constraints;
+}
+
+- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedSpacing:(CGFloat)fixedSpacing leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing {
+    if (self.count < 2) {
+        NSAssert(self.count>1,@"views to distribute need to bigger than one");
+        return;
+    }
+    
+    MAS_VIEW *tempSuperView = [self mas_commonSuperviewOfViews];
+    if (axisType == MASAxisTypeHorizontal) {
+        MAS_VIEW *prev;
+        for (int i = 0; i < self.count; i++) {
+            MAS_VIEW *v = self[i];
+            [v mas_makeConstraints:^(MASConstraintMaker *make) {
+                if (prev) {
+                    make.width.equalTo(prev);
+                    make.left.equalTo(prev.mas_right).offset(fixedSpacing);
+                    if (i == self.count - 1) {//last one
+                        make.right.equalTo(tempSuperView).offset(-tailSpacing);
+                    }
+                }
+                else {//first one
+                    make.left.equalTo(tempSuperView).offset(leadSpacing);
+                }
+                
+            }];
+            prev = v;
+        }
+    }
+    else {
+        MAS_VIEW *prev;
+        for (int i = 0; i < self.count; i++) {
+            MAS_VIEW *v = self[i];
+            [v mas_makeConstraints:^(MASConstraintMaker *make) {
+                if (prev) {
+                    make.height.equalTo(prev);
+                    make.top.equalTo(prev.mas_bottom).offset(fixedSpacing);
+                    if (i == self.count - 1) {//last one
+                        make.bottom.equalTo(tempSuperView).offset(-tailSpacing);
+                    }                    
+                }
+                else {//first one
+                    make.top.equalTo(tempSuperView).offset(leadSpacing);
+                }
+                
+            }];
+            prev = v;
+        }
+    }
+}
+
+- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedItemLength:(CGFloat)fixedItemLength leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing {
+    if (self.count < 2) {
+        NSAssert(self.count>1,@"views to distribute need to bigger than one");
+        return;
+    }
+    
+    MAS_VIEW *tempSuperView = [self mas_commonSuperviewOfViews];
+    if (axisType == MASAxisTypeHorizontal) {
+        MAS_VIEW *prev;
+        for (int i = 0; i < self.count; i++) {
+            MAS_VIEW *v = self[i];
+            [v mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.width.equalTo(@(fixedItemLength));
+                if (prev) {
+                    if (i == self.count - 1) {//last one
+                        make.right.equalTo(tempSuperView).offset(-tailSpacing);
+                    }
+                    else {
+                        CGFloat offset = (1-(i/((CGFloat)self.count-1)))*(fixedItemLength+leadSpacing)-i*tailSpacing/(((CGFloat)self.count-1));
+                        make.right.equalTo(tempSuperView).multipliedBy(i/((CGFloat)self.count-1)).with.offset(offset);
+                    }
+                }
+                else {//first one
+                    make.left.equalTo(tempSuperView).offset(leadSpacing);
+                }
+            }];
+            prev = v;
+        }
+    }
+    else {
+        MAS_VIEW *prev;
+        for (int i = 0; i < self.count; i++) {
+            MAS_VIEW *v = self[i];
+            [v mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.height.equalTo(@(fixedItemLength));
+                if (prev) {
+                    if (i == self.count - 1) {//last one
+                        make.bottom.equalTo(tempSuperView).offset(-tailSpacing);
+                    }
+                    else {
+                        CGFloat offset = (1-(i/((CGFloat)self.count-1)))*(fixedItemLength+leadSpacing)-i*tailSpacing/(((CGFloat)self.count-1));
+                        make.bottom.equalTo(tempSuperView).multipliedBy(i/((CGFloat)self.count-1)).with.offset(offset);
+                    }
+                }
+                else {//first one
+                    make.top.equalTo(tempSuperView).offset(leadSpacing);
+                }
+            }];
+            prev = v;
+        }
+    }
+}
+
+- (MAS_VIEW *)mas_commonSuperviewOfViews
+{
+    MAS_VIEW *commonSuperview = nil;
+    MAS_VIEW *previousView = nil;
+    for (id object in self) {
+        if ([object isKindOfClass:[MAS_VIEW class]]) {
+            MAS_VIEW *view = (MAS_VIEW *)object;
+            if (previousView) {
+                commonSuperview = [view mas_closestCommonSuperview:commonSuperview];
+            } else {
+                commonSuperview = view;
+            }
+            previousView = view;
+        }
+    }
+    NSAssert(commonSuperview, @"Can't constrain views that do not share a common superview. Make sure that all the views in this array have been added into the same view hierarchy.");
+    return commonSuperview;
+}
+
+@end

--
Gitblit v1.8.0