我试图加载uiView
。这个视图应该有50点距离右下方标签。但模拟器显示更多的小距离。所以我试图设置uiView的背景色来检查这个视图如何占用,但它不工作?我的代码的主要问题是什么?
这里是屏幕截图和代码
private let helpLabelView: UIView = {
let container = UIView()
let label1 = UILabel(frame: CGRect(x: 0, y: 0, width: 300, height: 20))
label1.text = "비밀번호를 설정해주세요."
label1.font = UIFont(name: "Pretendard-Regular", size: 15)
label1.backgroundColor = .cyan
let label2 = UILabel(frame: CGRect(x: 0, y: 20, width: 300, height: 20))
label2.text = "(영어 대소문자, 숫자, 특수문자 각 1개 이상 사용)"
label2.font = UIFont(name: "Pretendard-Regular", size: 15)
label2.backgroundColor = .green
container.addSubview(label1)
container.addSubview(label2)
container.backgroundColor = .brown // this line not applied
return container
}()
view.addSubview(helpLabelView)
helpLabelView.translatesAutoresizingMaskIntoConstraints = false
pwLabel.bottomAnchor.constraint(equalTo: pwField.topAnchor, constant: -11),
pwLabel.leftAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leftAnchor, constant: 20),
helpLabelView.bottomAnchor.constraint(equalTo: pwLabel.topAnchor, constant: -50),
helpLabelView.leftAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leftAnchor, constant: 20),
- pwLabel位于
HelpLabelView
标签下方附近**所有视图均设置为活动 *
1条答案
按热度按时间up9lanfz1#
问题是
helpLabelView
的 size 没有约束,所以它的size自动设置为(0,0)。容器视图就像蓝色标签左上角的一个不可见的点。从图片上看,考虑到绿色和蓝色标签的高度都是20,蓝色标签的左上角确实距离
pwLabel
的顶部大约有50个点。因此,一个简单的解决方案是添加一些关于宽度和高度的约束:
这将解决间距问题,但您仍然看不到棕色背景,因为蓝色和绿色背景完全覆盖了
helpLabelView
的背景。要看到棕色背景,您需要给予它一个更大的尺寸。最后但同样重要的是,考虑使用
UIStackView
来包含两个标签,而不是硬编码所有标签的宽度和高度。