「SwiftUI」UILabel抗压缩性和抗拉伸性

262 阅读1分钟
前言:有时候UI布局会出现同一行无法展示完全,会需要根据非重要性顺序进行省略展示

问题背景:

比如:这三个Label,中间这个重要性最低,如果与状态值冲突,则进行省略号隐藏
在这里插入图片描述

写好布局时,可以实现中间省略号隐藏,但是下拉刷新数据后又会出现最后一个Label数据省略,如图
在这里插入图片描述

问题解决:

经过添加布局的优先级,也仍然在刷新数据后无法继续实现效果,通过查找资料,发现可以设置Label抗压缩性,经过尝试发现这个属性确实可以实现该功能,如图

贴代码:

/// 横向抗压缩性
dateLabel.setContentCompressionResistancePriority(UILayoutPriority.required, for: NSLayoutConstraint.Axis.horizontal)
/// 纵向抗压缩性
dateLabel.setContentCompressionResistancePriority(UILayoutPriority.required, for: NSLayoutConstraint.Axis.vertical)

相关知识:

UILabel 抗拉伸性:

/// 横向抗拉伸性
dateLabel.setContentHuggingPriority(UILayoutPriority.required, for: NSLayoutConstraint.Axis.horizontal)
/// 纵向抗拉伸性
dateLabel.setContentHuggingPriority(UILayoutPriority.required, for: NSLayoutConstraint.Axis.vertical)

参考资料:iOS UILabel添加UIEdgeInsets,抗拉伸和抗压缩

整理不易,望大家多多点赞,谢谢大家!