Commit a741f921 by Daniel Dahan

fixed issue where TabBar line was incorrectly animating during transition

parent 2404c2ca
Subproject commit 2f4fb2859d7ed9ec05dca5221710d3e4cc46d410 Subproject commit d3b27d7597ecd9e035e7f477513c7f43cea24c5c
...@@ -546,8 +546,9 @@ fileprivate extension TabBar { ...@@ -546,8 +546,9 @@ fileprivate extension TabBar {
return return
} }
guard !(false == _delegate?._tabBar(tabBar: self, shouldSelect: tabItem)) else { return } guard !(false == _delegate?._tabBar(tabBar: self, shouldSelect: tabItem)) else {
return
}
animate(to: tabItem, isTriggeredByUserInteraction: true) animate(to: tabItem, isTriggeredByUserInteraction: true)
} }
...@@ -604,15 +605,15 @@ fileprivate extension TabBar { ...@@ -604,15 +605,15 @@ fileprivate extension TabBar {
.size(width: tabItem.bounds.width, height: lineHeight), .size(width: tabItem.bounds.width, height: lineHeight),
.position(x: tabItem.center.x, y: .bottom == lineAlignment ? scrollView.bounds.height - lineHeight / 2 : lineHeight / 2), .position(x: tabItem.center.x, y: .bottom == lineAlignment ? scrollView.bounds.height - lineHeight / 2 : lineHeight / 2),
.completion({ [weak self, isTriggeredByUserInteraction = isTriggeredByUserInteraction, tabItem = tabItem, completion = completion] in .completion({ [weak self, isTriggeredByUserInteraction = isTriggeredByUserInteraction, tabItem = tabItem, completion = completion] in
guard let s = self else { guard let `self` = self else {
return return
} }
if isTriggeredByUserInteraction { if isTriggeredByUserInteraction {
s.delegate?.tabBar?(tabBar: s, didSelect: tabItem) self.delegate?.tabBar?(tabBar: self, didSelect: tabItem)
} }
completion?(tabItem) completion?(tabItem)
})) }))
updateScrollView() updateScrollView()
......
...@@ -230,7 +230,7 @@ fileprivate extension TabsController { ...@@ -230,7 +230,7 @@ fileprivate extension TabsController {
} }
super.transition(to: viewController) { [weak self, viewController = viewController, completion = completion] (isFinishing) in super.transition(to: viewController) { [weak self, viewController = viewController, completion = completion] (isFinishing) in
guard let s = self else { guard let `self` = self else {
return return
} }
...@@ -241,7 +241,7 @@ fileprivate extension TabsController { ...@@ -241,7 +241,7 @@ fileprivate extension TabsController {
completion?(isFinishing) completion?(isFinishing)
if isTriggeredByUserInteraction { if isTriggeredByUserInteraction {
s.delegate?.tabsController?(tabsController: s, didSelect: viewController) self.delegate?.tabsController?(tabsController: self, didSelect: viewController)
} }
} }
} }
...@@ -412,21 +412,14 @@ extension TabsController { ...@@ -412,21 +412,14 @@ extension TabsController {
} }
} }
Motion.async { [weak self] in transition(to: viewControllers[index], isTriggeredByUserInteraction: isTriggeredByUserInteraction) { [weak self] (isFinishing) in
guard let s = self else { guard isFinishing else {
return return
} }
s.tabBar.select(at: index) self?.selectedIndex = index
s.transition(to: s.viewControllers[index], isTriggeredByUserInteraction: isTriggeredByUserInteraction) { [weak self] (isFinishing) in
guard isFinishing else {
return
}
self?.selectedIndex = index
}
} }
return true return true
} }
} }
...@@ -434,7 +427,6 @@ extension TabsController { ...@@ -434,7 +427,6 @@ extension TabsController {
extension TabsController: _TabBarDelegate { extension TabsController: _TabBarDelegate {
@objc @objc
func _tabBar(tabBar: TabBar, shouldSelect tabItem: TabItem) -> Bool { func _tabBar(tabBar: TabBar, shouldSelect tabItem: TabItem) -> Bool {
guard let i = tabBar.tabItems.index(of: tabItem) else { guard let i = tabBar.tabItems.index(of: tabItem) else {
return false return false
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment