iOS 解决 PanoramaGL 缩放 问题

热门标签

,

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

最近需要做个全景视图的项目,于是找到了PanoramaGL开源库,结果发现有个缩放问题。
四个标签,第一个可以缩放 换一个cube或者sphere 、cylinder就不能正常缩放了,然后切换回第一个也不能正常缩放。
网上很多人也发现了这个问题,不知道大家解决没有,这里我修复了下,可以解决问题,大家一起看看。

问题定位路线如下:

1、PLViewBase类的 -(BOOL)calculateFov:(NSSet*)touches,因为是触摸出发缩放,所以开始先想到触摸事件,然后找到了触摸关联FOV的函数。该函数OK。

2、继续向下:进入PLCamera的 -(void)addFovWithDistance:(float)distance;再次log,单步,发现入参没问题,self.fov 这个变量同时其他地方没有呗修改,可以却很诡异的在切换不同全景后,缩放不是最大值1.000,就是最小值-0.20000。

3、怀疑fovSensitivity这个变量出的问题,最后发现是它在每次PLCamera初始话时,就会被付给默认值。而我们在PLView中的setPanorama函数里调用render时会根据render是否存在,分别调用start或者resizeFromLayer,问题就在resizeFromLayer里每次会根据view的宽高来设置fovSensitivity,那么问题就很清楚了,每次程序启动时,它才会被正确赋值,而其他切换tab时,调用的是start函数,fovSensitivity是默认值。

最后我们在在 PLRender.m 中的 start 方法里面 修改render的start函数,加入
if(scene.currentCamera.fovSensitivity==kDefaultFovSensitivity)
{

scene.currentCamera.fovSensitivity=(aspect>=1.0f?backingWidth:backingHeight)*10.0f;

}
标签:

未经允许不得转载:作者:SheaYang, 转载或复制请以 超链接形式 并注明出处 技术Dog|博客
原文地址:《iOS 解决 PanoramaGL 缩放 问题》 发布于2019-09-20

分享到:
赞(0) 打赏

评论 抢沙发

1 + 9 =


iOS 解决 PanoramaGL 缩放 问题

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.0主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?