Skip to content

Commit

Permalink
Merge branch 'release/1.7'
Browse files Browse the repository at this point in the history
  • Loading branch information
yoiang committed Nov 5, 2014
2 parents 6611cae + 7274d64 commit 963c17d
Show file tree
Hide file tree
Showing 14 changed files with 408 additions and 220 deletions.
4 changes: 3 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
language: objective-c
xcode_workspace: StoryboardXibControllerDemo/StoryboardXibControllerDemo.xcworkspace
xcode_scheme: StoryboardXibControllerDemo
before_install: rm Podfile.lock
before_install:
- rm Podfile.lock
- pod install
xcode_sdk: iphonesimulator
script: xctool -workspace StoryboardXibControllerDemo.xcworkspace -scheme StoryboardXibControllerDemo -sdk iphonesimulator build
5 changes: 0 additions & 5 deletions Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,3 @@ xcodeproj 'StoryboardXibControllerDemo/StoryboardXibControllerDemo.xcodeproj/'
target "StoryboardXibControllerDemo" do
pod 'StoryboardXibController', :path => './'
end

target "StoryboardXibControllerDemoTests" do

end

6 changes: 3 additions & 3 deletions Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
PODS:
- SegueingInfo (1.0.0)
- StoryboardXibController (1.5.2):
- StoryboardXibController (1.6.1):
- SegueingInfo

DEPENDENCIES:
Expand All @@ -12,6 +12,6 @@ EXTERNAL SOURCES:

SPEC CHECKSUMS:
SegueingInfo: 674b86e23d6db7f005e146919fef0e3078f70efb
StoryboardXibController: e9db1ef9e8e7fd0ebec2c77ed11ca88250587d4d
StoryboardXibController: 40040742d1a53299c2be20ac3223f424685301f1

COCOAPODS: 0.33.1
COCOAPODS: 0.34.4
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,21 @@ Once you've installed the class:

* Enjoy!

Additional Configuration
---
* To align the contained view with the Top Layout Guide or Bottom Layout Guide toggle the two view controller properties:
* `Align To Top Layout Guide`
* `Align To Bottom Layout Guide`

![screenAlignToLayoutGuide](https://github.com/Codecademy/StoryboardXibController/blob/master/README/AttributesAlignToGuides.png?raw=true)

* Or if you're pre-Xcode6 add attributes of `BOOL` value with the **Key Paths**:
* `alignToTopLayoutGuide`
* `alignToBottomLayoutGuide`

Thanks to @fatuhoku for the idea and assistance in developing the feature.


Contributing
---
If you have any ideas, suggestions or bugs to report please [create an issue](https://github.com/Codecademy/StoryboardXibController/issues/new) labeled *feature* or *bug* (check to see if the issue exists first please!). Or suggest a pull request!
Binary file added README/AttributesAlignToGuides.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions StoryboardXibController.podspec
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
Pod::Spec.new do |s|
s.name = 'StoryboardXibController'
s.version = '1.6.1'
s.version = '1.7'
s.license = 'MIT'
s.homepage = 'https://github.com/Codecademy/StoryboardXibController'
s.authors = { 'Ian Grossberg / Codecademy' => 'yo.ian.g@gmail.com' }
s.summary = 'a View Controller for loading Xibs from your Storyboards'

# Source Info
s.platform = :ios, '6.0'
s.source = { :git => 'https://github.com/Codecademy/StoryboardXibController.git', :tag => '1.6.1' }
s.source = { :git => 'https://github.com/Codecademy/StoryboardXibController.git', :tag => '1.7' }
s.source_files = 'StoryboardXibController/*'

s.requires_arc = true
Expand Down
3 changes: 3 additions & 0 deletions StoryboardXibController/StoryboardXibController.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@
@property (readwrite) IBInspectable NSString *screenNib;
@property (readwrite) IBInspectable NSString *nibBundleName;

@property (readwrite) IBInspectable BOOL alignToTopLayoutGuide;
@property (readwrite) IBInspectable BOOL alignToBottomLayoutGuide;

@property (strong, readonly) UIViewController *containedController;

@property (strong, readwrite) void (^containedControllerLoadedHandler)(StoryboardXibController *storyboardXibController);
Expand Down
99 changes: 67 additions & 32 deletions StoryboardXibController/StoryboardXibController.m
Original file line number Diff line number Diff line change
Expand Up @@ -117,40 +117,10 @@ - (BOOL)checkContainedViewDidLoad
self.containedViewDidLoadCheck = nil;

UIView *containedView = self.containedController.view;
[containedView setFrame:self.view.bounds];
containedView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:containedView];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:containedView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeTop
multiplier:1.0f
constant:0.0] ];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:containedView
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1.0f
constant:0.0] ];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:containedView
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeBottom
multiplier:1.0f
constant:0.0] ];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:containedView
attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeRight
multiplier:1.0f
constant:0.0] ];
[self setupContainedViewConstraints];

if ( [self.containedController conformsToProtocol:@protocol(StoryboardXibContainedController) ] )
{
Expand Down Expand Up @@ -193,6 +163,71 @@ - (BOOL)checkContainedViewDidLoad
return self.containedController.isViewLoaded;
}

- (void)setupContainedViewConstraints
{
UIView *containedView = self.containedController.view;

NSLayoutConstraint *containedViewTopLayoutContraint;
if (self.alignToTopLayoutGuide)
{
containedViewTopLayoutContraint = [NSLayoutConstraint constraintWithItem:containedView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.topLayoutGuide
attribute:NSLayoutAttributeBottom
multiplier:1.0f
constant:0];
} else
{
containedViewTopLayoutContraint = [NSLayoutConstraint constraintWithItem:containedView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeTop
multiplier:1.0f
constant:0];
}
[self.view addConstraint:containedViewTopLayoutContraint];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:containedView
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1.0f
constant:0.0] ];

NSLayoutConstraint *containedViewBottomLayoutContraint;
if (self.alignToBottomLayoutGuide)
{
containedViewBottomLayoutContraint = [NSLayoutConstraint constraintWithItem:containedView
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:self.bottomLayoutGuide
attribute:NSLayoutAttributeTop
multiplier:1.0f
constant:0];
} else
{
containedViewBottomLayoutContraint = [NSLayoutConstraint constraintWithItem:containedView
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeBottom
multiplier:1.0f
constant:0];
}
[self.view addConstraint:containedViewBottomLayoutContraint];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:containedView
attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeRight
multiplier:1.0f
constant:0.0] ];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
[super prepareForSegue:segue sender:sender];
Expand Down
Loading

0 comments on commit 963c17d

Please sign in to comment.