Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
# Change Log
All notable changes of the library will be documented in this file.

## 2.2
### Added
- Ability to globally change the drop shadow of the current content view while the menu is open (#61)
- New sample project controller to tweak the transition settings
- Status bar color can now be updated on a controller by controller basis

### Changed
- Changed default `contentScale` value from `0.88` to `0.86` (#53, #66, #72)
- Updated sample project to better reflect the README demo gif

### Breaking
- Dropped support for iOS 8

## 2.1 - [2017-10-23]
### Added
- Swift 4 support
Expand Down
6 changes: 3 additions & 3 deletions InteractiveSideMenu.podspec
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
Pod::Spec.new do |s|
s.name = "InteractiveSideMenu"
s.version = "2.1"
s.version = "2.2"
s.summary = "Interactive Side Menu in Swift"
s.homepage = "https://github.com/handsomecode/InteractiveSideMenu"
s.license = "Apache 2.0 license"
s.author = { "Andrey Arzhannikov" => "andreya@handsome.is" }
s.author = { "Eric Miller" => "eric@handsome.is" }

s.source = { :git => "https://github.com/handsomecode/InteractiveSideMenu.git", :tag => "#{s.version}" }

s.platform = :ios, "8.0"
s.platform = :ios, "9.0"

s.source_files = "Sources/*.swift"

Expand Down
16 changes: 10 additions & 6 deletions InteractiveSideMenu.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
881EF0921E3101130035DEB4 /* InteractiveSideMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 881EF0901E3101130035DEB4 /* InteractiveSideMenu.h */; settings = {ATTRIBUTES = (Public, ); }; };
881EF0971E3101B80035DEB4 /* MenuAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 881EF0931E3101B80035DEB4 /* MenuAnimator.swift */; };
881EF0981E3101B80035DEB4 /* MenuContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 881EF0941E3101B80035DEB4 /* MenuContainerViewController.swift */; };
881EF0991E3101B80035DEB4 /* MenuItemContentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 881EF0951E3101B80035DEB4 /* MenuItemContentViewController.swift */; };
881EF0991E3101B80035DEB4 /* SideMenuItemContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 881EF0951E3101B80035DEB4 /* SideMenuItemContent.swift */; };
881EF09A1E3101B80035DEB4 /* MenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 881EF0961E3101B80035DEB4 /* MenuViewController.swift */; };
D48B8AEC202CDE1A0010D9A4 /* SideMenuItemShadow.swift in Sources */ = {isa = PBXBuildFile; fileRef = D48B8AEB202CDE1A0010D9A4 /* SideMenuItemShadow.swift */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
Expand All @@ -24,8 +25,9 @@
881EF0901E3101130035DEB4 /* InteractiveSideMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InteractiveSideMenu.h; sourceTree = "<group>"; };
881EF0931E3101B80035DEB4 /* MenuAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MenuAnimator.swift; sourceTree = "<group>"; };
881EF0941E3101B80035DEB4 /* MenuContainerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MenuContainerViewController.swift; sourceTree = "<group>"; };
881EF0951E3101B80035DEB4 /* MenuItemContentViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MenuItemContentViewController.swift; sourceTree = "<group>"; };
881EF0951E3101B80035DEB4 /* SideMenuItemContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SideMenuItemContent.swift; sourceTree = "<group>"; };
881EF0961E3101B80035DEB4 /* MenuViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MenuViewController.swift; sourceTree = "<group>"; };
D48B8AEB202CDE1A0010D9A4 /* SideMenuItemShadow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SideMenuItemShadow.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -62,7 +64,8 @@
84E2E6761F15406600E5FF37 /* MenuTransitioningDelegate.swift */,
881EF0931E3101B80035DEB4 /* MenuAnimator.swift */,
881EF0941E3101B80035DEB4 /* MenuContainerViewController.swift */,
881EF0951E3101B80035DEB4 /* MenuItemContentViewController.swift */,
881EF0951E3101B80035DEB4 /* SideMenuItemContent.swift */,
D48B8AEB202CDE1A0010D9A4 /* SideMenuItemShadow.swift */,
881EF0961E3101B80035DEB4 /* MenuViewController.swift */,
881EF08F1E3101130035DEB4 /* Info.plist */,
881EF0901E3101130035DEB4 /* InteractiveSideMenu.h */,
Expand Down Expand Up @@ -153,7 +156,8 @@
881EF0971E3101B80035DEB4 /* MenuAnimator.swift in Sources */,
84E2E6771F15406600E5FF37 /* MenuTransitioningDelegate.swift in Sources */,
881EF0981E3101B80035DEB4 /* MenuContainerViewController.swift in Sources */,
881EF0991E3101B80035DEB4 /* MenuItemContentViewController.swift in Sources */,
881EF0991E3101B80035DEB4 /* SideMenuItemContent.swift in Sources */,
D48B8AEC202CDE1A0010D9A4 /* SideMenuItemShadow.swift in Sources */,
84E2E6751F15401000E5FF37 /* Options.swift in Sources */,
881EF09A1E3101B80035DEB4 /* MenuViewController.swift in Sources */,
);
Expand Down Expand Up @@ -274,7 +278,7 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = is.handsome.InteractiveSideMenu;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand All @@ -296,7 +300,7 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = is.handsome.InteractiveSideMenu;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ override func viewWillTransition(to size: CGSize, with coordinator: UIViewContro
Check out the [Sample](./Sample) project for more details and usage examples.

# Known Issues
There is [an issue](https://github.com/handsomecode/InteractiveSideMenu/issues/53) associated with the scaling of a UINavigationBar in iOS 11. Status bar background is hidden during side menu closing if `contentScale < 1`. This is an *iOS 11* issue and has been reported to Apple.
There is [an issue](https://github.com/handsomecode/InteractiveSideMenu/issues/53) associated with the content controller's view not properly having the `safeAreaInsets` set. This causes the view's layout to shift when the side menu is closed. The issue appears to be tied to the transition options `contentScale` setting. Choosing a value in the range 0.87 - 0.91 causes the `safeAreaInsets.top` to be set to `0.0`. The default value of the library is no longer within this range but be mindful if changing that value for your own application.


# Requirements
Expand Down
94 changes: 77 additions & 17 deletions Sample/Sample.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,17 @@
881EF0B21E3102E30035DEB4 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 881EF0B01E3102E30035DEB4 /* LaunchScreen.storyboard */; };
881EF0BD1E31037D0035DEB4 /* KittyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 881EF0B91E31037D0035DEB4 /* KittyViewController.swift */; };
881EF0BE1E31037D0035DEB4 /* HostViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 881EF0BA1E31037D0035DEB4 /* HostViewController.swift */; };
881EF0BF1E31037D0035DEB4 /* NavigationMenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 881EF0BB1E31037D0035DEB4 /* NavigationMenuViewController.swift */; };
881EF0BF1E31037D0035DEB4 /* SampleMenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 881EF0BB1E31037D0035DEB4 /* SampleMenuViewController.swift */; };
9A15C5481EDD62BC00C4FD75 /* InteractiveSideMenu.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 881EF0C71E31049C0035DEB4 /* InteractiveSideMenu.framework */; };
9A15C5491EDD62BC00C4FD75 /* InteractiveSideMenu.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 881EF0C71E31049C0035DEB4 /* InteractiveSideMenu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
9A6755031EA8E30C00F0C71D /* TabBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6755021EA8E30C00F0C71D /* TabBarViewController.swift */; };
D4028937202CEC45009F1262 /* SampleTableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4028936202CEC45009F1262 /* SampleTableCell.swift */; };
D4C58473202DD647006EF43A /* KittyViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D4C58472202DD647006EF43A /* KittyViewController.storyboard */; };
D4C58476202DD6B0006EF43A /* Storyboardable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4C58475202DD6B0006EF43A /* Storyboardable.swift */; };
D4C58478202DD6DF006EF43A /* TabBarViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D4C58477202DD6DF006EF43A /* TabBarViewController.storyboard */; };
D4C5847F202DD896006EF43A /* SampleMenuViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D4C5847E202DD896006EF43A /* SampleMenuViewController.storyboard */; };
D4C58482202DECB4006EF43A /* TweakViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4C58481202DECB4006EF43A /* TweakViewController.swift */; };
D4C58484202DECBB006EF43A /* TweakViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D4C58483202DECBB006EF43A /* TweakViewController.storyboard */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand Down Expand Up @@ -66,9 +73,16 @@
881EF0B31E3102E30035DEB4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
881EF0B91E31037D0035DEB4 /* KittyViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KittyViewController.swift; sourceTree = "<group>"; };
881EF0BA1E31037D0035DEB4 /* HostViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = HostViewController.swift; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
881EF0BB1E31037D0035DEB4 /* NavigationMenuViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationMenuViewController.swift; sourceTree = "<group>"; };
881EF0BB1E31037D0035DEB4 /* SampleMenuViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SampleMenuViewController.swift; sourceTree = "<group>"; };
881EF0C21E31049C0035DEB4 /* InteractiveSideMenu.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = InteractiveSideMenu.xcodeproj; path = ../InteractiveSideMenu.xcodeproj; sourceTree = "<group>"; };
9A6755021EA8E30C00F0C71D /* TabBarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabBarViewController.swift; sourceTree = "<group>"; };
D4028936202CEC45009F1262 /* SampleTableCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleTableCell.swift; sourceTree = "<group>"; };
D4C58472202DD647006EF43A /* KittyViewController.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = KittyViewController.storyboard; sourceTree = "<group>"; };
D4C58475202DD6B0006EF43A /* Storyboardable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Storyboardable.swift; sourceTree = "<group>"; };
D4C58477202DD6DF006EF43A /* TabBarViewController.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = TabBarViewController.storyboard; sourceTree = "<group>"; };
D4C5847E202DD896006EF43A /* SampleMenuViewController.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = SampleMenuViewController.storyboard; sourceTree = "<group>"; };
D4C58481202DECB4006EF43A /* TweakViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweakViewController.swift; sourceTree = "<group>"; };
D4C58483202DECBB006EF43A /* TweakViewController.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = TweakViewController.storyboard; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -103,33 +117,72 @@
881EF0A61E3102E30035DEB4 /* Sample */ = {
isa = PBXGroup;
children = (
881EF0C11E3103A80035DEB4 /* MenuContentScreens */,
881EF0BA1E31037D0035DEB4 /* HostViewController.swift */,
881EF0BB1E31037D0035DEB4 /* NavigationMenuViewController.swift */,
881EF0A71E3102E30035DEB4 /* AppDelegate.swift */,
881EF0AB1E3102E30035DEB4 /* Main.storyboard */,
881EF0AE1E3102E30035DEB4 /* Assets.xcassets */,
881EF0B01E3102E30035DEB4 /* LaunchScreen.storyboard */,
881EF0B31E3102E30035DEB4 /* Info.plist */,
881EF0A71E3102E30035DEB4 /* AppDelegate.swift */,
D4C5847D202DD877006EF43A /* Controllers */,
D4C5847A202DD810006EF43A /* Menu Controllers */,
D4C5847C202DD859006EF43A /* Cells */,
D4C58474202DD6A2006EF43A /* Helpers */,
D4C5847B202DD828006EF43A /* Supporting Items */,
);
path = Sample;
sourceTree = "<group>";
};
881EF0C11E3103A80035DEB4 /* MenuContentScreens */ = {
881EF0C31E31049C0035DEB4 /* Products */ = {
isa = PBXGroup;
children = (
881EF0C71E31049C0035DEB4 /* InteractiveSideMenu.framework */,
);
name = Products;
sourceTree = "<group>";
};
D4C58474202DD6A2006EF43A /* Helpers */ = {
isa = PBXGroup;
children = (
D4C58475202DD6B0006EF43A /* Storyboardable.swift */,
);
path = Helpers;
sourceTree = "<group>";
};
D4C5847A202DD810006EF43A /* Menu Controllers */ = {
isa = PBXGroup;
children = (
881EF0B91E31037D0035DEB4 /* KittyViewController.swift */,
D4C58472202DD647006EF43A /* KittyViewController.storyboard */,
9A6755021EA8E30C00F0C71D /* TabBarViewController.swift */,
D4C58477202DD6DF006EF43A /* TabBarViewController.storyboard */,
D4C58481202DECB4006EF43A /* TweakViewController.swift */,
D4C58483202DECBB006EF43A /* TweakViewController.storyboard */,
);
name = MenuContentScreens;
path = "Menu Controllers";
sourceTree = "<group>";
};
881EF0C31E31049C0035DEB4 /* Products */ = {
D4C5847B202DD828006EF43A /* Supporting Items */ = {
isa = PBXGroup;
children = (
881EF0C71E31049C0035DEB4 /* InteractiveSideMenu.framework */,
881EF0AE1E3102E30035DEB4 /* Assets.xcassets */,
881EF0B01E3102E30035DEB4 /* LaunchScreen.storyboard */,
881EF0B31E3102E30035DEB4 /* Info.plist */,
);
name = Products;
name = "Supporting Items";
sourceTree = "<group>";
};
D4C5847C202DD859006EF43A /* Cells */ = {
isa = PBXGroup;
children = (
D4028936202CEC45009F1262 /* SampleTableCell.swift */,
);
path = Cells;
sourceTree = "<group>";
};
D4C5847D202DD877006EF43A /* Controllers */ = {
isa = PBXGroup;
children = (
881EF0BA1E31037D0035DEB4 /* HostViewController.swift */,
881EF0BB1E31037D0035DEB4 /* SampleMenuViewController.swift */,
D4C5847E202DD896006EF43A /* SampleMenuViewController.storyboard */,
);
path = Controllers;
sourceTree = "<group>";
};
/* End PBXGroup section */
Expand Down Expand Up @@ -210,8 +263,12 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
D4C58484202DECBB006EF43A /* TweakViewController.storyboard in Resources */,
D4C5847F202DD896006EF43A /* SampleMenuViewController.storyboard in Resources */,
881EF0B21E3102E30035DEB4 /* LaunchScreen.storyboard in Resources */,
D4C58473202DD647006EF43A /* KittyViewController.storyboard in Resources */,
881EF0AF1E3102E30035DEB4 /* Assets.xcassets in Resources */,
D4C58478202DD6DF006EF43A /* TabBarViewController.storyboard in Resources */,
881EF0AD1E3102E30035DEB4 /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand All @@ -225,9 +282,12 @@
files = (
881EF0BD1E31037D0035DEB4 /* KittyViewController.swift in Sources */,
881EF0BE1E31037D0035DEB4 /* HostViewController.swift in Sources */,
881EF0BF1E31037D0035DEB4 /* NavigationMenuViewController.swift in Sources */,
D4C58476202DD6B0006EF43A /* Storyboardable.swift in Sources */,
D4028937202CEC45009F1262 /* SampleTableCell.swift in Sources */,
881EF0BF1E31037D0035DEB4 /* SampleMenuViewController.swift in Sources */,
9A6755031EA8E30C00F0C71D /* TabBarViewController.swift in Sources */,
881EF0A81E3102E30035DEB4 /* AppDelegate.swift in Sources */,
D4C58482202DECB4006EF43A /* TweakViewController.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -363,7 +423,7 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = Sample/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = is.handsome.Sample;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand All @@ -377,7 +437,7 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = Sample/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = is.handsome.Sample;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand Down
21 changes: 21 additions & 0 deletions Sample/Sample/Assets.xcassets/kitten_avatar.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "kitten_avatar.jpeg",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading