AutoLayout 在地图标注中动态调整 UILabel 高度和宽度?

Posted

技术标签:

【中文标题】AutoLayout 在地图标注中动态调整 UILabel 高度和宽度?【英文标题】:AutoLayout to dynamically size UILabel Height and Width in Map callout? 【发布时间】:2017-09-14 08:45:36 【问题描述】:

我必须在 .xib 中的 2 个 UILabel 上填充数据。这用于 Google Map SDK ios 的自定义标注(在地图注释中)。如何使用自动布局在界面生成器中设置约束?

这是我现在所拥有的。我需要使高度和宽度动态化。因此,某些标注不包括箭头图标。

每个标签属性的样子:

几乎就在那里,发生的情况是容器视图没有根据描述标签展开/缩小。

我应该遵循哪些步骤从头开始构建此视图(也出于学习目的)?加上不同的方法可以实现?

【问题讨论】:

如果你没有设置任何约束,除了位置,那么UILabel会自动调整大小 【参考方案1】:

只需将标签的行数更改为“0”,自动布局将处理其余的事情。删除高度限制,因为标签的高度将由字体大小和文本行数决定。

.

【讨论】:

如果您使用 TableView,您可以实现自动调整大小的表格视图单元格。 raywenderlich.com/129059/self-sizing-table-view-cells。在其他情况下,您必须为容器框架提供框架,其高度必须通过计算所有约束和标签高度或任何其他方式来定义。为简单起见,您可以使用 UITextView。 它的大小调整正确,没有问题,但是.xib和容器视图没有根据标签调整大小。 您是否为容器视图指定了恒定高度? 我给superview的宽高相等。

以上是关于AutoLayout 在地图标注中动态调整 UILabel 高度和宽度?的主要内容,如果未能解决你的问题,请参考以下文章

AutoLayout动态调整UILabel高度和宽度

根据标签长度调整从 xib 创建的视图大小

Python-气象-大气科学-可视化绘图系列—— 地图上自动标注省会名称(demo调整中)(代码+示例)

在iOS中使用autolayout调整内容大小的UILabel

以 Autolayout 视觉形式调整子视图的大小

arcgis路名标注