这是 JAPanoView 的分支...
JAPanoView 是一个 UIView 子类,用于通过立方全景图像渲染 360-180 度的全景视图,具有交互式平移和缩放功能。您可以向 JAPanoView 添加任何 UIView 作为热点。观看视频:http://www.youtube.com/watch?v=8g0LcuNzzNM
JAPanoView 源代码遵循 Apache 许可发布。更多信息请访问 https://apache.ac.cn/licenses/LICENSE2.0.html。示例图片来自 http://www.remedypanoramic.com/ 和 © Remedy Panoramic Design 2010。已在版权持有人的许可下包含。
JAPanoView 由 Javier Alonso 创建。 http://javieralog.blogspot.com @javieralog
您可以从 https://github.com/ddebin/JAPanoView 获取最新版本。
将 JAPanoView.h 和 JAPanoView.m 复制到您的项目中。确保您的项目包括以下框架
JAPanoView 代码使用 ARC,iOS 部署目标版本是 iOS 5.0 或更高。最新版本使用 iOS SDK 8.0 进行了测试
创建全景视图
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];`
实例化任何 UIView 子类,并使用 addHotspot:atHAngle:vAngle:
方法将其作为热点添加,指示水平角度(方位角)和垂直角度(高度角)。要从 JAPanoView 中移除一个热点,只需在热点实例上调用 removeFromPanoView
(类似于 addSubview:
和 removeFromSuperview
)。
由于任何 UIView 都可以是热点,因此您可以将任何 UIControl 添加到热点或者向热点添加任何 UIGestureRecognizer,使其具备完整的用户交互性。您还可以利用 UIView 的 convertPoint/Rect:from/toView: 方法,从热点显示弹出窗口,如您在演示项目中看到的那样。
[popover presentPopoverFromRect:hotspot.frame
inView:hotspot.superview
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
对于 UIView,还有一个属性:shouldApplyPerspective。它表示热点是否应始终渲染为与屏幕平行(shouldApplyPerspective==NO
)或与视角/热点轴垂直(shouldApplyPerspective==YES
;默认值)。