我有四张图片;每个都是 350 像素宽;第一个是北,第二个是东,第三个是南,第四个是西。我将它们放入单个图像的 scrollView 中,并将所述 scrollView 链接到我指向 iPad 的方向。现在,当我四处平移时,我想让滚动条在图像周围平移,所以如果我向北看并向东转,我会看到屏幕向北滑动,然后向东滑动到它上面。
现在我尝试使用指南针来做到这一点,并且效果相当不错,但是如何编码跨越 0 度和 360 度之间的边界是一个挑战。我尝试使用偏航,这样我就能看到两个 180 度的圆,但我也没有想出如何让它工作。我用谷歌搜索并找到了四元数和欧拉角,但对我来说没有任何意义......
需要一些指导/帮助。
您实际上并不需要 ScrollView ,因为您是通过设备标题控制滚动偏移,而不是让用户滑动屏幕。所以你可以只使用一个普通的旧 UIView
作为 ImageView 的父级。您只需将 view.bounds.origin
而不是 scrollView.contentOffset
更新为“滚动”。 (在幕后, ScrollView 的 contentOffset
与其 bounds.origin
相同。)
无论如何,像这样布置你的图片:
+-------+-------+-------+-------+-------+
| North | East | South | West | North |
+-------+-------+-------+-------+-------+
请注意,北方图像使用了两次。
当你得到一个新标题时,像这样更新 ScrollView 的偏移量:
let range = CGFloat(350 * 4)
let offset = range * (CGFloat)direction / 360
scrollView.contentOffset = CGPointMake(offset, 0)