我需要根据某种条件和不同的条件水平显示一个进度条和一个标签,它们彼此相邻,而我需要垂直显示一个标签和进度条。第三个条件是我隐藏标签并仅显示进度栏。对于第三个条件,我希望进度条占据屏幕的整个宽度-屏幕两端的空间。最初,我首先放置约束以使其并排显示,并且它起作用了。但是,对于其他两个条件,当我尝试在运行时修改现有约束时,它变得混乱并且无法按预期工作。在这些情况下,有关约束外观的任何指示。附件是进度条和标签并排的图像
答案 0 :(得分:0)
我需要根据某些条件和不同条件将进度条和标签水平相邻放置
为此
进度条约束
标签约束
我需要在垂直下方显示标签和进度条
为此目的
进度条约束
标签约束
第三个条件是我隐藏标签并仅显示进度条。对于第三个条件,我希望进度条占据屏幕的整个宽度-在其两端都有一些空间
这有点棘手,但难度不大,请根据我们的第一个问题设置约束,并与其他约束一起添加一个额外的约束,Trailing Space进行超级查看,Stroyboard会向您显示错误,请放心。现在为Swiftbar / objc文件中的两个约束创建Progressbar尾随空间的出口,并在运行时根据您的逻辑激活一个约束并停用另一个约束。以及显示/隐藏标签。像这样
NSLayoutConstraint.isActive = false; // or true. Here NSLayoutConstraint is your reference to constraint outlet.
答案 1 :(得分:0)
添加一个水平的UIStackview并添加一个UIProgressView和一个UILabel。将标签文字对齐设置为居中。
向堆栈视图添加顶部,底部,前导,尾随约束。不要在堆栈视图中添加高度限制。在标签上添加高度限制。
将stackview配置更改为
并通过更改stackview的轴并按如下所示隐藏/显示标签来更改样式
@IBAction func style1(_ sender: Any) {
stackView.axis = .horizontal
stackView.alignment = .center
label.isHidden = false
}
@IBAction func style2(_ sender: Any) {
stackView.axis = .vertical
stackView.alignment = .fill
label.isHidden = false
}
@IBAction func style3(_ sender: Any) {
stackView.axis = .horizontal
stackView.alignment = .center
label.isHidden = true
}