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