我正在设计一个游戏,它在 UIScrollView 中有一个大的十六进制样式地图,在另一个视图中有一个 1/10 比例的“迷你地图”。迷你地图有一个矩形,用于指示滚动视图中可见的当前区域。定位矩形以使其与主地图同步的最佳方法是什么?
问问题
298 次
1 回答
2
您可以随时获取 UIScrollView contentOffset
。您可以在 UIScrollView 委托方法中检查此值- (void)scrollViewDidScroll:(UIScrollView *)scrollView
。一旦你有了 contentOffset,你应该将它除以你的 UIScrollViewcontentSize
减去 it's frame.size
。这给了你一个浮点数,然后可以使用该浮点数来确定矩形在较小视图中的位置。下面的一些代码显示我在说什么。我只是给你x定位的例子。冲洗并重复 y 定位。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat xRat;
CGFloat xPos;
xRat = scrollView.contentOffset.x/(scrollView.contentSize.width - scrollView.frame.size.width);
}
这xRat
是滚动视图滚动的百分比(以浮点格式)。因此,只需使用 xRat 以该百分比沿 x 轴定位直线。
于 2012-12-12T17:26:00.537 回答