带有 VFL 约束的 iOS 多行文本

Posted

技术标签:

【中文标题】带有 VFL 约束的 iOS 多行文本【英文标题】:iOS multiline text with VFL Constraints 【发布时间】:2020-05-30 00:58:20 【问题描述】:

我想在同一行显示一个切换按钮和一个文本。 (以及这些列表) 但是当文本太长时,它并没有立即传播到 2 行,它首先接管了 switch。如果更长,则继续进行 2 行。当然,我无法管理这个字符串的长度。

我现在的限制是非常基本的:@"H:|-[switchBtn%d]-[nameL%d]-|"

顶视图就是@"H:|-[containerView]-|"

我尝试使用大约为屏幕宽度 70% 的尺寸和指标,但是当我旋转屏幕时,我无法让它正确更新此值。更改屏幕方向时不会调整大小。我尝试更新指标字典,并重新附加约束/更新它们。没办法。

我在某处缺少什么吗? 更改指标字典是不是一个坏主意?

【问题讨论】:

您是否尝试将开关按钮上的内容压缩阻力优先级设置为高于文本的值?见developer.apple.com/documentation/uikit/uiview/… 我会试试这个,如果我能让它工作,我会关闭它。谢谢! 当我降低文本的优先级时工作(但如果我将开关置于更高的值)。非常感谢!!! 【参考方案1】:
[nameL setContentCompressionResistancePriority: UILayoutPriorityDefaultLow forAxis: UILayoutConstraintAxisHorizontal];

成功了。谢谢你。

【讨论】:

以上是关于带有 VFL 约束的 iOS 多行文本的主要内容,如果未能解决你的问题,请参考以下文章

如果约束是使用 VFL 以编程方式创建的,如何为约束更改设置动画?

即时更改程序化/VFL 约束

iOS - 带约束的多行 UILabel 高度

swift 自定义view VFL 设置约束冲突

代码加约束VFL语法的详细使用介绍(代替Autolayout进行布局,比Autolayout更简单明了,生动直观)

约束的奇怪行为,iOS8