gpt4 book ai didi

Swift SnapKit 如何使用相对位置布局 UIView

转载 作者:可可西里 更新时间:2023-11-01 00:49:51 25 4
gpt4 key购买 nike

func setupPosition() {
box.snp.makeConstraints{(make)->Void in
make.edges.equalTo(view).inset(UIEdgeInsetsMake(64+20, 20, 250, 20))
}

textField.snp.makeConstraints{(make)->Void in
make.edges.equalTo(box).inset(UIEdgeInsetsMake(5, 5, 150, 5))

}

stackBoxOne.snp.makeConstraints{(make)->Void in
make.top.equalTo(box).offset(textField.frame.size.height)
make.left.equalTo(box).offset(5)
make.bottom.equalTo(box).offset(-90)
make.right.equalTo(box).offset(-5)
}
}

我想将 stackBoxOne 放在 textField 下。但是上面的代码不起作用。如何修改代码?感谢您的宝贵时间。

最佳答案

您不能在 makeConstraints 闭包内使用 textField.frame,因为此时尚未对 View 进行布局。因此,高度为 0stackBoxOne 的偏移量为 0

要将一个 View 放置在另一个 View 下方,您可以将其顶部约束连接到另一个 View 的底部约束。所以在你的情况下:

stackBoxOne.snp.makeConstraints{(make)->Void in
make.top.equalTo(textField.snp.bottom)
make.left.equalTo(box).offset(5)
make.bottom.equalTo(box).offset(-90)
make.right.equalTo(box).offset(-5)
}

除此之外,您还可以将左右约束设置为等于 textFields 左右约束,如下所示:

stackBoxOne.snp.makeConstraints{(make)->Void in
make.top.equalTo(textField.snp.bottom)
make.left.right.equalTo(textField)
make.bottom.equalTo(box).offset(-90)
}

关于Swift SnapKit 如何使用相对位置布局 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40540407/

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