首页 > 解决方案 > iOS 13 上的约束问题,看起来与 iOS 12 不同

问题描述

我对 iOS 13 视图的底部约束有疑问,这是我遇到的单行代码:
myLabel.bottomAnchor.constraint(equalTo: headerView.bottomAnchor, constant: 0).isActive = true

此代码在 iOS 13 和 iOS 12 上的工作方式不同:(下图与 iOS 13 相关,它是调试视图)
iOS-13

iOS-13 查看调试

在调试视图中它看起来与模拟器视图不同,我不知道为什么?!

现在,如果您在下图中看到:(与 iOS 12 相关)
在此处输入图像描述

这就是我到目前为止所做的:
当我删除 headerView(GreenImage) 上的高度约束时,它可以正常工作,但是当我在其上设置高度时,发出回 :(
我在layoutSubviews()中创建 headerBackground 约束 并在中创建标签底部约束像下面的代码这样的闭包属性:

private lazy var headerView : HeaderView = {
        let view = HeaderView(layout: .login)
        let welcomeLabel = UILabel()
        view.addSubview(welcomeLabel)
        welcomeLabel.translatesAutoresizingMaskIntoConstraints = false
        welcomeLabel.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0).isActive = true
        welcomeLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20).isActive = true
        welcomeLabel.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20).isActive = true
        return view
    }() 

标签: swiftxcodeautolayoutios13

解决方案


我找到了一个答案,我认为在 iOS 12 或更早版本的视图中有一个默认值,在 我更改值后clipToBounds = true
,iOS 13 中的默认值是假的,我的问题得到了解决,并且前面的 imageView 剪辑来自后面的视图。


推荐阅读