之前项目遇到了一个问题,现在总结下。
问题前提条件是:
用的1.SlideMenu这个侧滑左侧抽屉框架 2.友盟分享sdk 3.新浪分享web分享(即未安装新浪微博客户端情况)
问题现象描述:
上一个图
问题描述图只有重新把左侧抽屉打开时才能看见刚刚的web分享视图,因为这个视图是友盟sdk里的api提供的,默认调用就会产生这个问题
解决办法:
1.问题定位:
通过视图可以发现,分享视图是在window上的,这样可以推测应该是和slide那个框架在window的处理上有所冲突。
2.解决途径:
先上一个图
解决办法1.slide框架写的很复杂,里面包括很多动画等。如果要完全读懂它,那好多时间都浪费在这里了。我这里并没有自习去研究他的具体底层实现方式。
2.友盟sdk的api我们也看不到实现函数体,所以这里无法下手
其实两个框架在使用上很简单,但是对window的操控依赖性很强。我的思路是按照window,在他们布局的时候进行控制,全局搜索window后,发现果然有如图右侧红框的代码。看到代码,我推测,可能是因为分享web视图和menuViewController.view在“谦让”window的显示优先级。于是,我更改一些代码,如上面注释掉的代码打开,再注释掉下面的两行代码。经过测试,果然可以解决这个问题。
解释:
代码很简单,在windw这里“垫一层view”,就是把左侧控制器添加到view上,而不是添加到window上。这样新浪web分享view就无法再“谦让”了。哈哈
总结:
代码很简单,就是定位问题点时和解决问题比较费时。如果有同样“遭遇”的朋友,可以借鉴一下。有问题我们随时交流哈
QQ 38020858
网友评论