Des*_*ner 7 ios autolayout uicollectionviewcell uistackview
我有一个标题标签,定义如下:
private lazy var titleLabel: UILabel = {
 let label = UILabel()
 label.numberOfLines = 2
 label.setContentCompressionResistancePriority(.init(rawValue: 999), for: .vertical)
 return label
}()
private lazy var descriptionLabel: UILabel = {
  let label = UILabel()
  label.numberOfLines = 0
  label.lineBreakMode = .byTruncatingTail
  return label
}()
titleLabel可以增长并强制收缩descriptionLabel。单元格高度固定为120或78。当单元格高度为78时,高度descriptionLabel为0
两者都添加到UIStackview 
private lazy var labelStackView: UIStackView = {
  let stackView = UIStackView()
  stackView.addArrangedSubview(titleLabel)
  stackView.addArrangedSubview(descriptionLabel)
  stackView.axis = .vertical
  stackView.distribution = .fill
  return stackView
}()
stackView 添加containerView到顶部、左侧、右侧和底部的填充内部。固定containerView在 的边缘contentView。
上distribution的stackView被设置fill为允许descriptionLabel收缩。这种设置会导致约束被打破。
问题
titleLabel- UILabel 的高度不明确
descriptionLabel- UILabel 的高度和垂直位置不明确
有没有办法在不打破约束的情况下实现这一目标?
我尝试为两个标签设置内容阻力优先级,如下所示:
titleLabel->label.setContentCompressionResistancePriority(.init(rawValue: 999), for: .vertical)
descriptionLabel->label.setContentCompressionResistancePriority(.init(rawValue: 998), for: .vertical)
我还是没有运气。
Des*_*ner 10
通过在 上设置内容拥抱优先级descriptionLabel,我能够修复布局歧义。
private lazy var descriptionLabel: UILabel = {
 let label = UILabel()
 label.numberOfLines = 0
 label.lineBreakMode = .byTruncatingTail
 label.setContentHuggingPriority(.high, for: .vertical)
 return label
}()
| 归档时间: | 
 | 
| 查看次数: | 4798 次 | 
| 最近记录: |