diff --git a/Example/Podfile b/Example/Podfile
index b5402b5..90431d5 100644
--- a/Example/Podfile
+++ b/Example/Podfile
@@ -1,4 +1,4 @@
-platform :ios, '10.0'
+platform :ios, '11.0'
use_frameworks!
target 'WaveTab_Example' do
diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj
index f64962d..e87c751 100644
--- a/Example/Pods/Pods.xcodeproj/project.pbxproj
+++ b/Example/Pods/Pods.xcodeproj/project.pbxproj
@@ -444,7 +444,7 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-WaveTab_Tests/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 9.3;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-WaveTab_Tests/Pods-WaveTab_Tests.modulemap";
@@ -539,7 +539,7 @@
GCC_PREFIX_HEADER = "Target Support Files/WaveTab/WaveTab-prefix.pch";
INFOPLIST_FILE = "Target Support Files/WaveTab/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/WaveTab/WaveTab.modulemap";
PRODUCT_MODULE_NAME = WaveTab;
@@ -571,7 +571,7 @@
GCC_PREFIX_HEADER = "Target Support Files/WaveTab/WaveTab-prefix.pch";
INFOPLIST_FILE = "Target Support Files/WaveTab/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/WaveTab/WaveTab.modulemap";
PRODUCT_MODULE_NAME = WaveTab;
@@ -605,7 +605,7 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-WaveTab_Example/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 9.3;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-WaveTab_Example/Pods-WaveTab_Example.modulemap";
@@ -642,7 +642,7 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-WaveTab_Example/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 9.3;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-WaveTab_Example/Pods-WaveTab_Example.modulemap";
@@ -743,7 +743,7 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-WaveTab_Tests/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 9.3;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-WaveTab_Tests/Pods-WaveTab_Tests.modulemap";
diff --git a/Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..919434a
--- /dev/null
+++ b/Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/WaveTab/Classes/Implementation/Extensions/UIBezierPath+createCurve.swift b/WaveTab/Classes/Implementation/Extensions/UIBezierPath+createCurve.swift
index 2f3be5f..7a74d75 100644
--- a/WaveTab/Classes/Implementation/Extensions/UIBezierPath+createCurve.swift
+++ b/WaveTab/Classes/Implementation/Extensions/UIBezierPath+createCurve.swift
@@ -13,11 +13,11 @@ extension UIBezierPath {
let path = UIBezierPath()
path.move(to: .zero)
path.addLine(to: CGPoint(x: center - (curve * 2), y: 0))
- path.addQuadCurve(to: CGPoint(x: center - curve, y: curve / 2), controlPoint: CGPoint(x: center - curve - curve / 7.5, y: 0))
+ path.addQuadCurve(to: CGPoint(x: center - curve, y: curve / 2), controlPoint: CGPoint(x: center - curve - 13, y: 0))
path.addCurve(to: CGPoint(x: center + curve, y: curve / 2),
- controlPoint1: CGPoint(x: center - curve + curve / 4, y: curve + curve / 2),
- controlPoint2: CGPoint(x: center + curve - curve / 4, y: curve + curve / 2))
- path.addQuadCurve(to: CGPoint(x: center + (curve * 2), y: 0), controlPoint: CGPoint(x: center + curve + curve / 7.5, y: 0))
+ controlPoint1: CGPoint(x: center - curve + curve / 2, y: curve + curve / 2),
+ controlPoint2: CGPoint(x: center + curve - curve / 2, y: curve + curve / 1.8))
+ path.addQuadCurve(to: CGPoint(x: center + (curve * 2), y: 0), controlPoint: CGPoint(x: center + curve + 13, y: 0))
path.addLine(to: CGPoint(x: tabBar.bounds.width, y: 0))
path.addLine(to: CGPoint(x: tabBar.bounds.width, y: tabBar.bounds.height))
path.addLine(to: CGPoint(x: 0, y: tabBar.bounds.height))
diff --git a/WaveTab/Classes/Implementation/Wave Tab Bar Controller/WaveTabBarController.swift b/WaveTab/Classes/Implementation/Wave Tab Bar Controller/WaveTabBarController.swift
index 5c3442d..d5562e9 100644
--- a/WaveTab/Classes/Implementation/Wave Tab Bar Controller/WaveTabBarController.swift
+++ b/WaveTab/Classes/Implementation/Wave Tab Bar Controller/WaveTabBarController.swift
@@ -49,6 +49,10 @@ open class WaveTabBarController: UITabBarController, WaveTabBarProtocol {
presenter.viewDidLoad()
}
+// open override func viewWillAppear(_ animated: Bool) {
+// presenter.viewDidLoad()
+// }
+
open override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
@@ -60,6 +64,10 @@ open class WaveTabBarController: UITabBarController, WaveTabBarProtocol {
open override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
presenter.tabBarDidSelectItem(with: item.tag)
}
+ open func didTapItem(tag:Int){
+ presenter.tabBarDidSelectItem(with: tag)
+
+ }
open override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
@@ -99,14 +107,23 @@ open class WaveTabBarController: UITabBarController, WaveTabBarProtocol {
tabBar.layer.insertSublayer(waveSubLayer, above: tabBar.layer.sublayers?.first)
}
+//
func setupCircle(_ width: Float) {
+ circle?.removeFromSuperview() // ->> Add this line
circle = UIView(frame: CGRect(x: 0.0, y: 0.0, width: CGFloat(width), height: CGFloat(width)))
circle?.layer.cornerRadius = CGFloat(width) / 2
circle?.center = CGPoint(x: tabBarItems[safeSelectedIndex].center.x, y: 0.0)
- circle?.layer.borderWidth = Constants.borderWidth
- circle?.layer.borderColor = Constants.borderColor
- tabBar.addSubview(circle!)
+ circle?.clipsToBounds = true;
+ //circle?.backgroundColor = UIColor.white
+ circle?.layer.shadowColor = UIColor.lightGray.cgColor
+ circle?.layer.shadowOpacity = 0.8
+ circle?.layer.shadowOffset = CGSize(width: 0.0, height: 0.0)
+ circle?.layer.shadowRadius = 6.0
+ circle?.layer.masksToBounds = false
+ tabBar.addSubview(circle!)
}
+
+
func updateCircleSize(_ radius: Float) {
guard let circle = circle else { return }
@@ -144,13 +161,16 @@ open class WaveTabBarController: UITabBarController, WaveTabBarProtocol {
}
}
+//
func setupImageView(_ center: Float) {
- let image = viewControllers?[safeSelectedIndex].tabBarItem.selectedImage?.withRenderingMode(.alwaysTemplate)
- imageView = UIImageView(image: image)
- imageView?.contentMode = UIView.ContentMode.scaleAspectFit
- imageView?.tintColor = tabBar.tintColor
- circle?.addSubview(imageView!)
- imageView?.center = CGPoint(x: CGFloat(center), y: CGFloat(center))
+ let image = viewControllers?[safeSelectedIndex].tabBarItem.selectedImage
+ imageView?.removeFromSuperview() // ->> Add this line
+ imageView = UIImageView(image: image)
+ imageView?.tintColor = UIColor.init(red: 0/255, green: 90.0/255, blue: 159.0/255, alpha: 1)
+ imageView?.contentMode = UIView.ContentMode.scaleAspectFit
+ circle?.addSubview(imageView!)
+ imageView?.center = CGPoint(x: CGFloat(center), y: CGFloat(center))
+ // imageView?.backgroundColor = UIColor.red
}
func updateImageViewSize(_ center: Float) {
diff --git a/WaveTab/Classes/Implementation/Wave Tab Bar Controller/WaveTabBarPresenterBase.swift b/WaveTab/Classes/Implementation/Wave Tab Bar Controller/WaveTabBarPresenterBase.swift
index d20f465..451fe55 100644
--- a/WaveTab/Classes/Implementation/Wave Tab Bar Controller/WaveTabBarPresenterBase.swift
+++ b/WaveTab/Classes/Implementation/Wave Tab Bar Controller/WaveTabBarPresenterBase.swift
@@ -11,10 +11,10 @@ class WaveTabBarPresenterBase: WaveTabBarPresenter {
private struct Constants {
- static let smallRadius: Float = 25
- static let bigRadius: Float = 30
- static let smallCircle: Float = 47
- static let bigCircle: Float = 57
+ static let smallRadius: Float = 32//25
+ static let bigRadius: Float = 37//30
+ static let smallCircle: Float = 57//47
+ static let bigCircle: Float = 67//57
static let circleAnimationDuration: TimeInterval = 0.2
static let waveAnimationDuration: TimeInterval = Constants.circleAnimationDuration * 2
static let showHideAnimationDuration: TimeInterval = 0.3
@@ -46,6 +46,7 @@ class WaveTabBarPresenterBase: WaveTabBarPresenter {
view.setupImageView((isPortrait ? Constants.bigCircle : Constants.smallCircle) / 2)
view.setupTabBarColoring()
view.setupTabBarBackground()
+
}
func viewDidRotate(portrait portraitOrientation: Bool, at index: Int) {
@@ -67,6 +68,7 @@ class WaveTabBarPresenterBase: WaveTabBarPresenter {
view.moveCircle(over: Constants.circleAnimationDuration,
offset: isPortrait ? Constants.bigRadius : Constants.smallRadius,
down: true)
+ view.setupImageView((isPortrait ? Constants.bigCircle : Constants.smallCircle) / 2)
}
func viewWillLayoutSubviews() {