我有一个react-native-map,它通过在数组中加载数据并将图像显示为数组中信息的标记来工作。我在地图上运行了一个react-native-snap-carousel,当它卡入到位时,它会对所述标记的区域进行动画处理。
这效果很好,但如果 2 个或更多标记靠得很近,它们就会按数组顺序重叠。我需要该位置的标记位于前面。我可以更改数组的顺序,但这会导致重新渲染的性能问题以及跟踪其他页面中的索引的问题。
有没有一种方法可以模拟区域动画时按下的标记?这不需要 zIndexes 就可以工作。我尝试过的事情:
我尝试过更改标记的 zIndex,但这在 IOS 上不起作用。
我尝试使用以下代码编辑 AIRMapMarker.m 文件,这是不久前发布的解决方案,但根本不可靠:
- (void)setZIndex:(NSInteger)zIndex
{
if (zIndex == 2) { // added line
[self setSelected:YES animated:NO]; // added line
} else { // added line
[self setSelected:NO animated:NO]; // added line
} // added line
_zIndex = zIndex;
self.layer.zPosition = _zIndex;
}
当然这是一个非常常见的问题并且有解决方案。我到处都看过了。
谢谢
我已经成功做到了,
我添加了这个:
const markerRefs = useRef([]);
我将其添加到标记中:
ref={(ref) => (markerRefs.current[index] = ref)}
当我加载数据时,我可以将其添加到 where 语句中以集中在该标记上:
markerRefs.current[index].showCallout(),
很简单,但是网上关于这个的信息不是很多,这是将标记移到其他人前面(主要是IOS)的最简单也是唯一的方法(我认为)如果不太清楚,请大声喊我,我会详细了解。谢谢