開発中のアプリが何故か原因不明のエラーで落ちるので原因を調査した内容のまとめです。
検証コード
let effectView = UIVisualEffectView(effect: UIBlurEffect(style: .light))
effectView.frame = self.view.bounds
self.view.addSubview(effectView)
let label = UILabel(frame: self.view.bounds.insetBy(dx: 100, dy: 100))
label.backgroundColor = UIColor.blue
label.text = "Hello iOS11"
effectView.addSubview(label)
修正方法
検証コードだけで実行した場合は正しくエラーと修正方法が提示されたので解決しました。
Do not add subviews directly to the visual effect view itself, instead add them to the -contentView.'
effectView.addSubview(label)
↓
effectView.contentView.addSubview(label)