iOS / Apple Maps: 当自定义标记的内容发生变化时,其位置会出现偏移(新架构)
作者: spendres创建于 2026年7月28日更新于 2026年9月14日
页:1
在苹果地图上 ('PROVIDER DEFAULT') 与"新建筑",一个自定义 QQ-Marker->` 其孩子** 大小变化** 最终被错位 —— 留在位置上仿佛它 仍然有一个前大尺寸。 子女从未改变大小的标记 正确位置,所以很容易错过。
原因是`AIRMapMarker'的界限来自第一个子观点和 只有永远** 长大**:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
- (void)排出子视图 { [超级布局Subviews]; CGreft reactionFrame=自反应. 边框; UIView * first SubView = self.subviews. first Object; 维维维尤 * first SubView = self.subviews. 如果( 首个 SubView QQ (CGRectGet Width (首个 SubView. frame) ) > CGRectGetWidth( 反应Frame) QQ CGRectGetHeight(第一Subview.frame) > CGRectGetHeight(反应Frame)) { 反应Frame = 第1个Subview.frame; // <- 仅在较大时取用 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? [自反应SetFrame:reactFrame]; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
" reactSetFrame: " 以`self.bitchs ' 和MapKit为中心出版这种尺寸
它的界限上的注释视图。 所以一旦一个标记是宽的, 它保持宽的
界限,其可见内容被取出中心 一半的差别——
永远的,因为尺寸永远不会回落。
环境
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
|-|-|-.
1.27.2 |
QQ 反应 - 内在 0.85.3 (新建筑 / Fabric) QQ
博览会SDK 56分
iOS平台模拟器,`PROVIDER-DEFAULT' (地图)
iOS和Android上的Google地图没有受到影响,
Apple Maps忽略的`anchor'道具。
* 复制
让孩子的宽度取决于状态,
时间轴 :
<Marker 坐标 {coord} 轨迹 维尤切克 {轨道 }
<View style }}背景 Color: '#000', padding Horizontal: 10,高: 28 }}
< text style > 颜色 : '# fff' # label > / Text >
</视频>
</Mark > 软件从长弦切换为短弦。 标记保持更大的 受限和可见的药丸会坐到坐标的一面. 切换 回到一个长的标签似乎"固定"它, 这使得它读起来像一个 间歇性错误。
测量
同一设计的两个标签,在同一坐标上:
坐标从内容的左边缘掉下 坐标从内容的左边缘掉下
几乎固定的绝对 抵消了非常不同的内容宽度—— 表示继承而不是衡量的界限。
- 两种不起作用的修补(均在设备上测试)
1. 删除 " 播放字幕 " 和 " 设定Frame: -- -- 即匹配哪些 `v2.0.0-β.15'已经这样做了——导致完全没有标记渲染** 新建筑.
2.x的原因很重要:`RNMaps MarkerView.mm' (Fabric组件视图) 没有 " 更新LayoutMetrics " 、没有 " layoutSubviews " 和 " setFrame " 的覆盖,以及 从未指定 QQview.frame ; 它只将儿童挂载到遗产视图上 . . . . . . .
内容来源: react-native-maps/react-native-maps