我创建了一个高度限制,我正在根据屏幕尺寸为其指定一个值。但是在分配时,我在行Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
heightConstraint.constant = Height
var heightConstraint: NSLayoutConstraint!
let Height =((intra_acc_send_b.frame.origin.y+intra_acc_send_b.frame.size.height)+20)
print ("\nheight%%%%%%%%%%%%%%%% ") ; print(Height); print(" %%%%%%%%%%%%%%%%%\n");
heightConstraint.constant = Height
self.scrollView.contentSize = CGSize(width: Width, height: heightConstraint.constant )
请帮助我找出解决方案。
答案 0 :(得分:2)
heightConstraint为nil,您正在访问它,这就是该错误的原因。在4.2版中,隐式强制展开已被废止。因此,如果您检查heightConstraint,即使它具有值,即使它具有ImplicitlyForceWapped,它也会给出可选值。
在分配新值之前,您需要使用if let
或guard
进行可选绑定以安全地展开。
if let constraints = heightConstraint {
heightConstraint.constant = Height
}
或
guard let constraints = heightConstraint else { return }
heightConstraint.constant = Height
您的视图尚未创建,这就是为什么高度尚未出现的原因。
答案 1 :(得分:0)
这是因为您从未初始化heightConstraint
(它是nil
)。
您需要先对其进行初始化。
如果heightConstraint
是@IBOutlet
,则需要在viewDidLoad
或更高版本中运行此代码。
答案 2 :(得分:0)
请注意以下几行:
print ("\nheight%%%%%%%%%%%%%%%% ") ; print(Height); print(" %%%%%%%%%%%%%%%%%\n");
heightConstraint.constant = Height
self.scrollView.contentSize = CGSize(width: Width, height: heightConstraint.constant )
根据您使用的课程类型:
在ViewController中
在
之后或期间放置它们viewDidLoad
在视图中
在
之后或期间放置它们awakeFromNib