WLTransitionKit 1.1.1

WLTransitionKit 1.1.1

018652wl维护。



 
依赖
WLToolsKit>= 0
WLBaseViewController>= 0
 

  • 作者
  • StoneStoneStoneWang

WLTransitionKit

pod 'WLTransitionKit'

这正是我想要的效果,参考了今日头条的转场效果

百度搜索结果大多是使用view截图进行转场动画,这种方式会导致from界面不会刷新,比如tableview的点击效果在返回时才消失

已经更改了几个版本,都存在bug。在放弃之前,还找到了另一种方式。还可以自定义导航栏,这里不再详述。

所做的是无侵入式开发,使用了运行时扩展

1.pod 'WLTransitionKit'

2.在appdelegate中调用UI Controller.popPanClassInit()

3.实现原理是基于响应者链和视图层级:视图层级为 window -> tabbar.view -> navi.view -> vc.view。转场时,会创建一个container,运行时添加属性,替换方法 viewdidload 和 viewappear

4.如果是没有导航的界面,请在viewappear中设置 public override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated)}

使用 `navigationController?.setNavigationBarHidden(true, animated: false)` 来隐藏导航栏,并在vc中实现以下两个继承方法 @objc open func WL_prefersNavigationBarHidden() -> Bool {

return false }

@objc open func WL_prefersTabbarHidden() -> Bool {

return true }

5. 对于有导航的页面,在 viewWill 事件中设置 `navigationController?.setNavigationBarHidden(false, animated: false)`