美文网首页程序员
iOS PanoramaGL、JAPanoView全景使用解析

iOS PanoramaGL、JAPanoView全景使用解析

作者: Yimmm | 来源:发表于2020-06-08 10:52 被阅读0次

       PanoramaGL:支持鱼眼图和六方图等等,但是使用不方便。GitHub链接:https://github.com/shaojiankui/PanoramaGL

       JAPanoView(推荐):只支持六方图,但是效果很棒,使用也很方便。GitHub链接:https://github.com/smartapps-fr/JAPanoView

       关于鱼眼图可以用Pano2VR 全景图像转化,因此可以用JAPanoView来解决大部分的iOS的720°全景展示开发需求。

       PanoramaGL

       准备材料:项目工程、从GitHub上download或者cocoapods下来的PanoramaGL源码。

       把PanoramaGL导到工程里,如图所示:

把图中的c文件改成OC源。

因为PanoramaGL用的是MRC,在现在ARC环境下会报错,所以找到targets->build phases->compile sources里的PanoramaGL相关文件添加

-fno-objc-arc

改成MRC环境编译。

在要使用到全景图的环境里,导入技术文档里指示的所需要的头文件。

2048的鱼眼图使用:

其他使用方法的相关代码均在ViewController里有展示。

JAPanoView(强推)

准备材料:项目工程、从GitHub上download或者cocoapods下来的JAPanoView源码。

将JAPanoView导入到工程里。

使用方法:

初始化JAPanoView并添加到视图里。

JAPanoView *panoView = [[JAPanoView alloc]initWithFrame:self.view.bounds];

[panoView setFrontImage:[UIImage imageNamed:@"TowerHousepano_f.jpg"] rightImage:[UIImage imageNamed:@"TowerHousepano_r.jpg"] backImage:[UIImage imageNamed:@"TowerHousepano_b.jpg"] leftImage:[UIImage imageNamed:@"TowerHousepano_l.jpg"] topImage:[UIImage imageNamed:@"TowerHousepano_u.jpg"] bottomImage:[UIImage imageNamed:@"Down_fixed.jpg"]];

[self.view addSubview:panoView];

此外常用方法:

[panoView setVAngle:0.5]; // 调整初始角度往上,负数往下

[panoView setHAngle:0]; // 同理水平效果。


                                 ———— 02.05 更新 ————

JAPanoView 的添加热点按钮API使用:

-(void)addHotspot:(UIView*)hotspotView atHAngle:(CGFloat)hAngle vAngle:(CGFloat)vAngle;

.h

@property (nonatomic, strong) StandbyView * YBF_PanoHotButton1; // 样板房的全景按钮动画

@property (nonatomic, strong) StandbyView * YBF_PanoHotButton2; // 样板房的全景按钮动画

@property (nonatomic, strong) StandbyView * YBF_PanoHotButton3; // 样板房的全景按钮动画

@property (nonatomic, strong) StandbyView * YBF_PanoHotButton4; // 样板房的全景按钮动画

@property (nonatomic, strong) StandbyView * YBF_PanoHotButton5; // 样板房的全景按钮动画

@property (nonatomic, strong) UIButton * YBF_PHBtn1; // 样板房的全景按钮

@property (nonatomic, strong) UIButton * YBF_PHBtn2; // 样板房的全景按钮

@property (nonatomic, strong) UIButton * YBF_PHBtn3; // 样板房的全景按钮

@property (nonatomic, strong) UIButton * YBF_PHBtn4; // 样板房的全景按钮

@property (nonatomic, strong) UIButton * YBF_PHBtn5; // 样板房的全景按钮

.m

// addHotspot热点按钮添加,atHAngle水平偏转角(负数为左),vAngle垂直偏转角(负数为下)

[_myPanoView addHotspot:self.YBF_PanoHotButton1 atHAngle:-1.0 vAngle:-0.8];

[_myPanoView addHotspot:self.YBF_PanoHotButton2 atHAngle:-2.25 vAngle:-0.27];

[_myPanoView addHotspot:self.YBF_PanoHotButton3 atHAngle:-3.2 vAngle:-0.6];

// 自定义动画

[_YBF_PanoHotButton1 imagePrefix:@"全景箭头-右转_" imageSuffix:@"png" totalFrames:25 loopFrame:1 speed:0.03];

[_YBF_PanoHotButton2 imagePrefix:@"全景箭头-前进_" imageSuffix:@"png" totalFrames:25 loopFrame:1 speed:0.03];

[_YBF_PanoHotButton3 imagePrefix:@"全景箭头-定位_" imageSuffix:@"png" totalFrames:25 loopFrame:1 speed:0.03];

// 添加按钮响应点击事件

[_YBF_PanoHotButton1 addSubview:self.YBF_PHBtn1];

[_YBF_PanoHotButton2 addSubview:self.YBF_PHBtn2];

[_YBF_PanoHotButton3 addSubview:self.YBF_PHBtn3];

相关文章

网友评论

    本文标题:iOS PanoramaGL、JAPanoView全景使用解析

    本文链接:https://www.haomeiwen.com/subject/bxqnzhtx.html