【发布时间】:2016-11-19 20:09:06
【问题描述】:
我希望 UIStackView 调整大小以适应它们的子视图(本例中为 UIImageView 和 UILabel)
let headerView = UIStackView()
headerView.axis = .vertical
headerView.alignment = .center
headerView.distribution = .equalSpacing
headerView.spacing = 10
let headerImage = UIImageView(...)
headerImage.contentMode = .scaleAspectFill
headerImage.clipsToBounds = true
headerImage.frame = CGRect(x: 0, y: 0, width: tableView.frame.width, height: tableView.frame.width / 1.618)
let desciptionView = UILabel()
desciptionView.text = "Some very long text wrapping multiple lines..."
desciptionView.numberOfLines = 0
desciptionView.font = UIFont.preferredFont(forTextStyle: UIFontTextStyle.body)
headerView.addArrangedSubview(headerImage)
headerView.addArrangedSubview(desciptionView)
print(headerView.bounds) // always 0,0,0,0
print(headerView.frame) // always 0,0,0,0
tableView.tableHeaderView = headerView
(在此代码中高宽均为0)
如何实现想要的行为?
【问题讨论】:
-
headerView.alignment = .fill? -
我希望this answer -somehow- 对你有所帮助。
-
您的视图正在折叠,因为它们没有任何约束可以保持其原始框架完整。尝试在堆栈视图的视图中添加一些
NSLayoutConstraints。 -
哪些约束是必要的?
标签: ios swift uitableview uikit uistackview