gpt4 book ai didi

swift - 更改约束的乘数值

转载 作者:行者123 更新时间:2023-11-28 06:27:56 25 4
gpt4 key购买 nike

我有一个菜单栏,它位于 CollectionViewController 的顶部,有几个不同的标题,大约 30 像素高.每个标题下方都有一个小条,指示用户所在的页面/项目,类似于 Youtube 应用。

class MenuBar : UIView {

var menuSectionTitles = ["Title1","Title2", "Title3","Title4"]

var numberOfSectionsInHorizontalBar : CGFloat?

var horizontalBarLeftAnchorConstraint: NSLayoutConstraint?
var horizontalBarWidthAnchorConstraint: NSLayoutConstraint?

override init(frame: CGRect) {
super.init(frame: frame)
setupHorizontalBar()
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

func setupHorizontalBar() {
let horizontalBarView = UIView()
horizontalBarView.backgroundColor = UIColor.rgb(10, green: 150, blue: 255)
horizontalBarView.translatesAutoresizingMaskIntoConstraints = false
addSubview(horizontalBarView)

horizontalBarLeftAnchorConstraint = horizontalBarView.leftAnchor.constraint(equalTo: self.leftAnchor)
horizontalBarLeftAnchorConstraint?.isActive = true

horizontalBarView.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true

// Set the multiplier/width of the horizontal bar to indicate which page the user is on
horizontalBarWidthAnchorConstraint = horizontalBarView.widthAnchor.constraint(equalTo: widthAnchor, multiplier: 1 / 4)
horizontalBarWidthAnchorConstraint?.isActive = true

horizontalBarView.heightAnchor.constraint(equalToConstant: 3).isActive = true
}
}

horizo​​ntalBarWidthAnchorConstraint 的乘数值被硬编码为 1/4

我想在不同的 View Controller 中多次重用 View ,因此尝试像这样更改 horizo​​ntalBarWidthAnchorConstraint 的乘数:

class ViewController: UICollectionViewController {

lazy var menuBar : MenuBar = {
let mb = OptionsBar()
mb.menuOptions = ["Title1", "Title2", "Title3"]
mb.translatesAutoresizingMaskIntoConstraints = false
mb.horizontalBarWidthAnchorConstraint?.constant = 1/3
return mb
}()
}

但是这个方法行不通。我找不到从 ViewController 内部更改乘数值的方法。

最佳答案

在此处的代码中,您正在更改约束的常数,而不是乘数。对吗?

另请注意,约束的乘数 是只读的。你不能改变它。如果您想更改应用于 View 的约束的乘数,那么唯一要做的就是添加一个带有新乘数的新约束并删除旧约束。

约束的唯一可读/写部分是常量属性。

关于swift - 更改约束的乘数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41241697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com