【发布时间】:2021-12-22 15:14:59
【问题描述】:
我正在尝试更改菜单视图的高度以使其打开,但是当我添加 NSLayoutConstraint 的 IBOutlet 时,它不断使我的应用程序崩溃并出现相同的错误代码。我三次检查插座是否正确连接,所以这不是问题。我是否遗漏了什么,或者这是否在新的 Xcode 中进行了更新,因为所有其他问题都来自至少 5 年前。
谢谢!
错误信息:
线程 1:“[
setValue:forUndefinedKey:]:此类不符合键 menuHeightConstraint 的键值编码。”
相关代码:
class HomeViewController: UIViewController {
// MARK: IBOutlets
@IBOutlet weak var menuHeightConstraint: NSLayoutConstraint!
@IBOutlet weak var menuView: UIView!
// MARK: Variables
var menuIsOpen = false
// MARK: IBaction functions
@IBAction func openMenu() {
menuIsOpen.toggle()
menuHeightConstraint.constant = menuIsOpen ? 180 : 55
UIView.animate(
withDuration: 1,
delay: 0,
options: .curveEaseIn,
animations: { self.menuView.layoutIfNeeded() },
completion: nil)
}
}
【问题讨论】:
-
UIViewController在异常消息中告诉您尚未为场景设置自定义类;它正在创建一个UIViewController实例,而不是HomeViewController实例,所以插座不存在 -
好吧,我直接来自故事板,将约束连接到可见屏幕的 ViewController 内的 NSLayoutConstraint。这不是正确的方法吗?因为我通常这样做...我添加了另一张带有故事板层次结构的图片
-
你是如何创建视图控制器实例的?我只能告诉你,异常说你有一个
UIViewController的实例,而不是HomeViewController的一个实例。检查您是否在控制台中收到有关未知视图控制器类的警告。
标签: ios swift storyboard nslayoutconstraint