ios - 从 super View 崩溃中删除 View

标签 ios swift iphone mobile

我制作了一个自定义 View ,其中有一个按钮,可以从其父 View 中删除该 View 。该 View 是从作为 super View 的 View Controller 创建的。我已经在我的自定义 View 类中为我的 View 设置了如下约束,但我认为它们有问题。

// View Contstaints
    translatesAutoresizingMaskIntoConstraints = false
    leadingAnchor.constraint(equalTo: superview!.leadingAnchor, constant: 40).isActive = true
    trailingAnchor.constraint(equalTo: superview!.trailingAnchor, constant: -40).isActive = true
    heightAnchor.constraint(equalToConstant: 420).isActive = true
    centerYAnchor.constraint(equalTo: superview!.centerYAnchor).isActive = true
    backgroundColor = .white
    layer.cornerRadius = 15

当我按下按钮时,我得到线程 1: fatal error :在展开可选值时意外发现 nil 从 View 的这个特定约束

leadingAnchor.constraint(equalTo: superview!.leadingAnchor, constant: 40).isActive = true

我该如何解决这个问题?谢谢。

最佳答案

在从父 View 中移除 View 之前,调用 NSLayoutConstraint.deactivate(yourView.constraints) 可能会有所帮助

然而,了解您在 View 类中的何处调用约束代码会很有帮助。一般来说,最好在 viewController 中设置约束,然后在需要时从 View Controller 中删除 View ,这可能会解决问题。

关于ios - 从 super View 崩溃中删除 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55317241/

相关文章:

ios - 所以。我试图让我的文本字段下的字符数在屏幕上增加,但它没有增加

swift - UIImageView 是 NIL

iphone - 线程安全的保留/释放

ios - 返回 viewController 方向。 swift

iPhone ImageView序列动画

ios - 如何使用 NSManagedObject 对象在 View Controller 之间传递自定义属性?

objective-c - Runloop 在使用流进行调度时不会被触发

ios - 错误 : Argument passed to call that takes no arguments

swift - 在 Swift 中设置文件属性

ios - 如何为倒数计时器创建循环进度指示器