Skip to content

Commit

Permalink
fix bug. When hidding the last view, the distribution doesn't work.
Browse files Browse the repository at this point in the history
  • Loading branch information
wtlucky committed Oct 28, 2015
1 parent a030395 commit 352da4c
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 38 deletions.
16 changes: 10 additions & 6 deletions FDStackView/FDStackViewDistributionLayoutArrangement.m
Original file line number Diff line number Diff line change
Expand Up @@ -61,24 +61,28 @@ - (void)resetFillEffect {
[self.canvas removeConstraints:self.hiddingDimensionConstraints.fd_allObjects];
[self.hiddingDimensionConstraints removeAllObjects];


UIView *offset = self.items.car;
for (UIView *view in self.items.cdr) {
NSLayoutAttribute attribute = [self minAttributeForGapConstraint];
NSLayoutRelation relation = [self edgeToEdgeRelation];
NSLayoutConstraint *spacing = [NSLayoutConstraint constraintWithItem:view attribute:attribute relatedBy:relation toItem:offset attribute:attribute + 1 multiplier:1 constant:self.spacing];
spacing.identifier = @"FDSV-spacing";
[self.canvas addConstraint:spacing];
[self.edgeToEdgeConstraints setObject:spacing forKey:offset];
if (offset.hidden) {
spacing.constant = 0;
}
offset = view;
}
// hidding dimensions
for (UIView *view in self.items) {
if (view.hidden) {
NSLayoutAttribute dimensionAttribute = [self dimensionAttributeForCurrentAxis];
NSLayoutConstraint *dimensionConstraint = [NSLayoutConstraint constraintWithItem:offset attribute:dimensionAttribute relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:0];
NSLayoutConstraint *dimensionConstraint = [NSLayoutConstraint constraintWithItem:view attribute:dimensionAttribute relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:0];
dimensionConstraint.identifier = @"FDSV-hiding";
[self.canvas addConstraint:dimensionConstraint];
[self.hiddingDimensionConstraints setObject:dimensionConstraint forKey:offset];
[self.hiddingDimensionConstraints setObject:dimensionConstraint forKey:view];
}
[self.canvas addConstraint:spacing];
[self.edgeToEdgeConstraints setObject:spacing forKey:offset];
offset = view;
}
}

Expand Down
52 changes: 26 additions & 26 deletions FDStackViewDemo.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,37 +7,37 @@
objects = {

/* Begin PBXBuildFile section */
484BAB3E1BC67ACA00D86EBB /* FDGapLayoutGuide.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB2E1BC67ACA00D86EBB /* FDGapLayoutGuide.h */; settings = {ASSET_TAGS = (); }; };
484BAB3F1BC67ACA00D86EBB /* FDGapLayoutGuide.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB2F1BC67ACA00D86EBB /* FDGapLayoutGuide.m */; settings = {ASSET_TAGS = (); }; };
484BAB401BC67ACA00D86EBB /* FDGapLayoutGuide.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB2F1BC67ACA00D86EBB /* FDGapLayoutGuide.m */; settings = {ASSET_TAGS = (); }; };
484BAB411BC67ACA00D86EBB /* FDLayoutSpacer.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB301BC67ACA00D86EBB /* FDLayoutSpacer.h */; settings = {ASSET_TAGS = (); }; };
484BAB421BC67ACA00D86EBB /* FDLayoutSpacer.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB311BC67ACA00D86EBB /* FDLayoutSpacer.m */; settings = {ASSET_TAGS = (); }; };
484BAB431BC67ACA00D86EBB /* FDLayoutSpacer.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB311BC67ACA00D86EBB /* FDLayoutSpacer.m */; settings = {ASSET_TAGS = (); }; };
484BAB441BC67ACA00D86EBB /* FDStackView.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB321BC67ACA00D86EBB /* FDStackView.h */; settings = {ASSET_TAGS = (); }; };
484BAB451BC67ACA00D86EBB /* FDStackView.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB331BC67ACA00D86EBB /* FDStackView.m */; settings = {ASSET_TAGS = (); }; };
484BAB461BC67ACA00D86EBB /* FDStackView.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB331BC67ACA00D86EBB /* FDStackView.m */; settings = {ASSET_TAGS = (); }; };
484BAB471BC67ACA00D86EBB /* FDStackViewAlignmentLayoutArrangement.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB341BC67ACA00D86EBB /* FDStackViewAlignmentLayoutArrangement.h */; settings = {ASSET_TAGS = (); }; };
484BAB481BC67ACA00D86EBB /* FDStackViewAlignmentLayoutArrangement.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB351BC67ACA00D86EBB /* FDStackViewAlignmentLayoutArrangement.m */; settings = {ASSET_TAGS = (); }; };
484BAB491BC67ACA00D86EBB /* FDStackViewAlignmentLayoutArrangement.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB351BC67ACA00D86EBB /* FDStackViewAlignmentLayoutArrangement.m */; settings = {ASSET_TAGS = (); }; };
484BAB4A1BC67ACA00D86EBB /* FDStackViewDistributionLayoutArrangement.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB361BC67ACA00D86EBB /* FDStackViewDistributionLayoutArrangement.h */; settings = {ASSET_TAGS = (); }; };
484BAB4B1BC67ACA00D86EBB /* FDStackViewDistributionLayoutArrangement.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB371BC67ACA00D86EBB /* FDStackViewDistributionLayoutArrangement.m */; settings = {ASSET_TAGS = (); }; };
484BAB4C1BC67ACA00D86EBB /* FDStackViewDistributionLayoutArrangement.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB371BC67ACA00D86EBB /* FDStackViewDistributionLayoutArrangement.m */; settings = {ASSET_TAGS = (); }; };
484BAB4D1BC67ACA00D86EBB /* FDStackViewExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB381BC67ACA00D86EBB /* FDStackViewExtensions.h */; settings = {ASSET_TAGS = (); }; };
484BAB4E1BC67ACA00D86EBB /* FDStackViewExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB391BC67ACA00D86EBB /* FDStackViewExtensions.m */; settings = {ASSET_TAGS = (); }; };
484BAB4F1BC67ACA00D86EBB /* FDStackViewExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB391BC67ACA00D86EBB /* FDStackViewExtensions.m */; settings = {ASSET_TAGS = (); }; };
484BAB501BC67ACA00D86EBB /* FDStackViewLayoutArrangement.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB3A1BC67ACA00D86EBB /* FDStackViewLayoutArrangement.h */; settings = {ASSET_TAGS = (); }; };
484BAB511BC67ACA00D86EBB /* FDStackViewLayoutArrangement.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB3B1BC67ACA00D86EBB /* FDStackViewLayoutArrangement.m */; settings = {ASSET_TAGS = (); }; };
484BAB521BC67ACA00D86EBB /* FDStackViewLayoutArrangement.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB3B1BC67ACA00D86EBB /* FDStackViewLayoutArrangement.m */; settings = {ASSET_TAGS = (); }; };
484BAB531BC67ACA00D86EBB /* FDTransformLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB3C1BC67ACA00D86EBB /* FDTransformLayer.h */; settings = {ASSET_TAGS = (); }; };
484BAB541BC67ACA00D86EBB /* FDTransformLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB3D1BC67ACA00D86EBB /* FDTransformLayer.m */; settings = {ASSET_TAGS = (); }; };
484BAB551BC67ACA00D86EBB /* FDTransformLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB3D1BC67ACA00D86EBB /* FDTransformLayer.m */; settings = {ASSET_TAGS = (); }; };
484BAB681BC8BDBC00D86EBB /* FDCodeBasedViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB671BC8BDBC00D86EBB /* FDCodeBasedViewController.m */; settings = {ASSET_TAGS = (); }; };
484BAB3E1BC67ACA00D86EBB /* FDGapLayoutGuide.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB2E1BC67ACA00D86EBB /* FDGapLayoutGuide.h */; };
484BAB3F1BC67ACA00D86EBB /* FDGapLayoutGuide.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB2F1BC67ACA00D86EBB /* FDGapLayoutGuide.m */; };
484BAB401BC67ACA00D86EBB /* FDGapLayoutGuide.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB2F1BC67ACA00D86EBB /* FDGapLayoutGuide.m */; };
484BAB411BC67ACA00D86EBB /* FDLayoutSpacer.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB301BC67ACA00D86EBB /* FDLayoutSpacer.h */; };
484BAB421BC67ACA00D86EBB /* FDLayoutSpacer.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB311BC67ACA00D86EBB /* FDLayoutSpacer.m */; };
484BAB431BC67ACA00D86EBB /* FDLayoutSpacer.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB311BC67ACA00D86EBB /* FDLayoutSpacer.m */; };
484BAB441BC67ACA00D86EBB /* FDStackView.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB321BC67ACA00D86EBB /* FDStackView.h */; };
484BAB451BC67ACA00D86EBB /* FDStackView.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB331BC67ACA00D86EBB /* FDStackView.m */; };
484BAB461BC67ACA00D86EBB /* FDStackView.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB331BC67ACA00D86EBB /* FDStackView.m */; };
484BAB471BC67ACA00D86EBB /* FDStackViewAlignmentLayoutArrangement.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB341BC67ACA00D86EBB /* FDStackViewAlignmentLayoutArrangement.h */; };
484BAB481BC67ACA00D86EBB /* FDStackViewAlignmentLayoutArrangement.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB351BC67ACA00D86EBB /* FDStackViewAlignmentLayoutArrangement.m */; };
484BAB491BC67ACA00D86EBB /* FDStackViewAlignmentLayoutArrangement.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB351BC67ACA00D86EBB /* FDStackViewAlignmentLayoutArrangement.m */; };
484BAB4A1BC67ACA00D86EBB /* FDStackViewDistributionLayoutArrangement.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB361BC67ACA00D86EBB /* FDStackViewDistributionLayoutArrangement.h */; };
484BAB4B1BC67ACA00D86EBB /* FDStackViewDistributionLayoutArrangement.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB371BC67ACA00D86EBB /* FDStackViewDistributionLayoutArrangement.m */; };
484BAB4C1BC67ACA00D86EBB /* FDStackViewDistributionLayoutArrangement.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB371BC67ACA00D86EBB /* FDStackViewDistributionLayoutArrangement.m */; };
484BAB4D1BC67ACA00D86EBB /* FDStackViewExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB381BC67ACA00D86EBB /* FDStackViewExtensions.h */; };
484BAB4E1BC67ACA00D86EBB /* FDStackViewExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB391BC67ACA00D86EBB /* FDStackViewExtensions.m */; };
484BAB4F1BC67ACA00D86EBB /* FDStackViewExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB391BC67ACA00D86EBB /* FDStackViewExtensions.m */; };
484BAB501BC67ACA00D86EBB /* FDStackViewLayoutArrangement.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB3A1BC67ACA00D86EBB /* FDStackViewLayoutArrangement.h */; };
484BAB511BC67ACA00D86EBB /* FDStackViewLayoutArrangement.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB3B1BC67ACA00D86EBB /* FDStackViewLayoutArrangement.m */; };
484BAB521BC67ACA00D86EBB /* FDStackViewLayoutArrangement.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB3B1BC67ACA00D86EBB /* FDStackViewLayoutArrangement.m */; };
484BAB531BC67ACA00D86EBB /* FDTransformLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 484BAB3C1BC67ACA00D86EBB /* FDTransformLayer.h */; };
484BAB541BC67ACA00D86EBB /* FDTransformLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB3D1BC67ACA00D86EBB /* FDTransformLayer.m */; };
484BAB551BC67ACA00D86EBB /* FDTransformLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB3D1BC67ACA00D86EBB /* FDTransformLayer.m */; };
484BAB681BC8BDBC00D86EBB /* FDCodeBasedViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 484BAB671BC8BDBC00D86EBB /* FDCodeBasedViewController.m */; };
48A1298A1B9BE5E500EF9265 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 48A129891B9BE5E500EF9265 /* main.m */; };
48A1298D1B9BE5E500EF9265 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 48A1298C1B9BE5E500EF9265 /* AppDelegate.m */; };
48A129931B9BE5E500EF9265 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 48A129911B9BE5E500EF9265 /* Main.storyboard */; };
48A129951B9BE5E500EF9265 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 48A129941B9BE5E500EF9265 /* Images.xcassets */; };
48A129981B9BE5E500EF9265 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 48A129961B9BE5E500EF9265 /* LaunchScreen.xib */; };
E153018E1BA8110C00C857EF /* FDStoryboardBasedViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E153018D1BA8110C00C857EF /* FDStoryboardBasedViewController.m */; settings = {ASSET_TAGS = (); }; };
E153018E1BA8110C00C857EF /* FDStoryboardBasedViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E153018D1BA8110C00C857EF /* FDStoryboardBasedViewController.m */; };
/* End PBXBuildFile section */

/* Begin PBXCopyFilesBuildPhase section */
Expand Down
12 changes: 6 additions & 6 deletions FDStackViewDemo/Base.lproj/Main.storyboard
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="8191" systemVersion="15A284" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="hoQ-3e-79n">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9059" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="hoQ-3e-79n">
<dependencies>
<deployment version="2304" identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8154"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9049"/>
</dependencies>
<scenes>
<!--FDStackView Demo-->
Expand Down Expand Up @@ -96,16 +96,16 @@
<stackView opaque="NO" contentMode="scaleToFill" alignment="top" translatesAutoresizingMaskIntoConstraints="NO" id="WVa-QF-j6L">
<rect key="frame" x="0.0" y="0.0" width="320" height="125"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="forking" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bkT-cj-tgv">
<rect key="frame" x="0.0" y="0.0" width="176" height="30"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" misplaced="YES" text="forking" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bkT-cj-tgv">
<rect key="frame" x="0.0" y="0.0" width="258" height="30"/>
<animations/>
<color key="backgroundColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
<fontDescription key="fontDescription" type="system" pointSize="25"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="forkingdog" translatesAutoresizingMaskIntoConstraints="NO" id="VqJ-sw-qAb">
<rect key="frame" x="176" y="0.0" width="100" height="100"/>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" image="forkingdog" translatesAutoresizingMaskIntoConstraints="NO" id="VqJ-sw-qAb">
<rect key="frame" x="258" y="0.0" width="18" height="45"/>
<animations/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="251" text="d" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zNb-iU-bCt">
Expand Down

0 comments on commit 352da4c

Please sign in to comment.