【发布时间】:2017-04-15 15:13:28
【问题描述】:
我在水平堆栈视图的左侧使用 UIImageView 和行数设置为 0 的标签。问题是 UIImageView 和标签都填充了相等的空间,即使我已经设置要填充的堆栈视图分布属性。我不希望我的图像视图扩大。改变内容拥抱没有帮助。
【问题讨论】:
标签: ios xcode uiimageview uilabel uistackview
我在水平堆栈视图的左侧使用 UIImageView 和行数设置为 0 的标签。问题是 UIImageView 和标签都填充了相等的空间,即使我已经设置要填充的堆栈视图分布属性。我不希望我的图像视图扩大。改变内容拥抱没有帮助。
【问题讨论】:
标签: ios xcode uiimageview uilabel uistackview
另一种方法是在图像+标签堆栈的右侧添加一个不可见的间隔对象。
private func spacer() -> UIView {
let stretchingView = UIView()
stretchingView.setContentHuggingPriority(.defaultHigh, for: .horizontal)
stretchingView.backgroundColor = UIColor.clear
stretchingView.translatesAutoresizingMaskIntoConstraints = false
return stretchingView
}
private func labelWithImage() -> UIView {
let image = UIImage(systemName: "map")
let imageView = UIImageView(image: image)
let label = UILabel()
label.text = "3 Miles Away"
label.font = UIFont.systemFont(ofSize: 17, weight: .regular)
label.textColor = UIColor.gray
let stackView = UIStackView(arrangedSubviews: [imageView, label, spacer()])
stackView.alignment = .leading
stackView.axis = .horizontal
return stackView
}
【讨论】: