【发布时间】:2018-09-13 11:41:13
【问题描述】:
我是 iOS 开发新手,对如何实现这一点有点困惑。
我有 2 个 UILabels 添加到 UIStackView 中,如下所示:
let horizontalStackView1 = UIStackView(arrangedSubviews: [self.label1, self.label2])
当我运行应用程序时,它看起来像这样:
我尝试设置horizontalStackView1.distribution、horizontalStackView1.alignment 等,但没有成功。
我如何做到这一点?
提前致谢!
更新:
代码看起来像这样(顺便说一下,它是表格的一个单元格):
class ItemTableViewCell: UITableViewCell
{
...
let stateLabel = UILabel()
let effectiveDateLabel = UILabel()
...
var typeImage: UIImage?
{
...
}
var summary: String?
{
...
}
var effectiveDate: Date?
{
...
}
override init(style: UITableViewCellStyle, reuseIdentifier: String?)
{
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.accessoryType = .disclosureIndicator
...
let horizontalStackView1 = UIStackView(arrangedSubviews: [self.stateLabel, self.effectiveDateLabel])
let horizontalStackView2 = UIStackView(arrangedSubviews: [typeImageViewWrapper, self.titleLabel])
horizontalStackView2.spacing = 4
let verticalStackView = UIStackView(arrangedSubviews: [horizontalStackView1, horizontalStackView2, self.summaryLabel])
verticalStackView.axis = .vertical
verticalStackView.spacing = 4
self.contentView.addSubview(verticalStackView)
...
}
required init?(coder aDecoder: NSCoder)
{
fatalError()
}
}
【问题讨论】:
-
这里绝对需要堆栈视图吗?
-
@inokey 不一定要配对,我只需要将视图水平添加到彼此旁边
-
如何添加 stackView 、 frame 或 autolayout 显示代码
-
当您需要分布式内容等时,堆栈非常好。但是当你只需要连续排列两个视图时,我会使用普通的自动布局。第一个标签导致超级视图领先,第二个标签导致第一个标签尾随。
-
@inokey 大声笑听起来不错,但对我来说都是胡言乱语,我来自 android 大声笑
标签: ios swift uilabel uistackview