ios - (iOS) 同时自动收缩 2 个相互约束的标签

标签 ios objective-c xcode autolayout

设置:

我有 2 个这样设置的标签:

Labels, before autoshrink

橙色包含 View :

  • 固定宽度和高度

左标签:

  • 顶部、左侧和底部约束 == 8 到橙色 View
  • 右约束 >= 8 到右标签
  • Horizo​​ntal Content Hugging 不变 (251)
  • 水平压缩阻力不变 (750)
  • 自动将字体缩小到最小比例 0.5

右标签:

  • 顶部、右侧和底部约束 == 8 到橙色 View
  • Left constraint >= 8 to Left Label
  • Horizo​​ntal Content Hugging 不变 (251)
  • 水平压缩阻力不变 (750)
  • 自动将字体缩小到最小比例 0.5

我想要发生的事情:

当标签文本变长时,两个标签的字体在截断前一起缩小到最小字体比例(或大小)。


实际发生了什么:

只有 1 个标签的字体会自动缩小然后截断,我收到一个约束投诉,要求将其中一个标签的抗压性设置得比另一个高。即使满足该约束条件,两个标签的字体也不会自动缩小。

Labels, after autoshrink


问题:

有没有办法通过自动布局或代码让两个标签的字体先缩小,然后在需要时截断?谢谢。

最佳答案

使用 Xcode 9.2 自动布局,这对我来说是自动的。

我在一个 View 中有两个标签。此 View 受限于 UITableViewCell。

左标签:

  • leftLabel.top = 顶部
  • leftLabel.leading = leading
  • leftLabel.bottom = 底部
  • rightLabel.trailing = leftLabel.trailing + 8
  • leftLabel 拥抱优先级 = ( 251, 251 )
  • leftLabel 抗压优先级 = ( 750, 750 )
  • 字体大小为 20,自动收缩设置为最小字体大小 12
  • 标签的行数 = 1

右标签:

  • rightLabel.trailing = leftLabel.trailing + 8
  • rightLabel.top = 顶部
  • rightLabel.trailing = trailing
  • rightLabel.bottom = 底部
  • rightLabel 拥抱优先级 = ( 252, 251 )
  • rightLabel 抗压优先级 = ( 750, 750 )
  • 字体大小为 20,自动收缩设置为最小字体大小 12
  • 标签的行数 = 1

当 labelLeft 和 labelRight 的文本字符串较短时,它们之间的间距较大。当这些字符串很长时,它们之间的间距很小(正好接近 8)并且两种字体都同样缩小了。

关于ios - (iOS) 同时自动收缩 2 个相互约束的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44190564/

相关文章:

ios - 尝试使用点运算符显示来自另一个类的 AppDelegate 中的 NSMutable 数组对象的信息

ios - 创建地理围栏时 NSCFNumber getCString maxLength 编码错误

iphone - XCode 在 "Run Script"阶段未完成测试构建

ios - SKStoreReviewController requestReview() 可能会或可能不会出现和提醒?

android - 如何在 React Native 中监听 App 的启动和关闭?

iphone - document目录在objective c中存放数据好还是缓存好?

ios - 升级到 Xcode 10 GM 种子后,EstimoteProximitySDK 使我的应用程序崩溃

ios - 无法将类型 '()' 的值转换为预期的参数类型 'String'

android - 除非缓存,否则 SVG 图像不会在智能手机上加载

ios - 过于频繁地更新 UILabel 文本