使用 NSLayoutConstraint 导致的编译错误
Compile error being caused when using NSLayoutConstraint
当我使用 NSLayoutConstraint 时,我的代码没有编译。我正在尝试使用代码而不是使用故事板来做所有事情。我不知道这是否正在发生,因为我遗漏了一些东西,但我现在想不出为什么这不起作用。错误发生在 judo = line
.
处的 viewDidLoad 函数中
我收到错误:
Cannot assign value of type '[()]' to type '[NSLayout
对于 judo = []
部分。
import UIKit
class ViewController: UIViewController {
var Judo1 = [NSLayoutConstraint]()
let FIRE = UIImageView()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(FIRE)
FIRE.translatesAutoresizingMaskIntoConstraints = false
let leadingc2 = FIRE.topAnchor.constraint(equalTo: view.topAnchor, constant: 0).isActive = true
let trailingC2 = FIRE.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0).isActive = true
let topc2 =
FIRE.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
let bottomc2 = FIRE.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true
Judo1 = [leadingc2,trailingC2,topc2,bottomc2]
NSLayoutConstraint.activate(Judo1)
}
}
追加时
.active = true
没有约束 return,所以让它们没有 .active = true
因为 return 在这种情况下是无效的
FIRE.translatesAutoresizingMaskIntoConstraints = false
let leadingc2 = FIRE.topAnchor.constraint(equalTo: view.topAnchor, constant: 0)
let trailingC2 = FIRE.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0)
let topc2 = FIRE.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0)
let bottomc2 = FIRE.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0)
judo1 = [leadingc2,trailingC2,topc2,bottomc2]
NSLayoutConstraint.activate(judo1)
更好地使用 apple 推荐的方法(如果您不需要参考)
NSLayoutConstraint.activate ([
FIRE.topAnchor.constraint(equalTo: view.topAnchor),
FIRE.bottomAnchor.constraint(equalTo: view.bottomAnchor),
FIRE.leadingAnchor.constraint(equalTo: view.leadingAnchor),
FIRE.trailingAnchor.constraint(equalTo: view.trailingAnchor)
])
同样当常量为零时,去掉它
当我使用 NSLayoutConstraint 时,我的代码没有编译。我正在尝试使用代码而不是使用故事板来做所有事情。我不知道这是否正在发生,因为我遗漏了一些东西,但我现在想不出为什么这不起作用。错误发生在 judo = line
.
我收到错误:
Cannot assign value of type '[()]' to type '[NSLayout
对于 judo = []
部分。
import UIKit
class ViewController: UIViewController {
var Judo1 = [NSLayoutConstraint]()
let FIRE = UIImageView()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(FIRE)
FIRE.translatesAutoresizingMaskIntoConstraints = false
let leadingc2 = FIRE.topAnchor.constraint(equalTo: view.topAnchor, constant: 0).isActive = true
let trailingC2 = FIRE.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0).isActive = true
let topc2 =
FIRE.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
let bottomc2 = FIRE.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true
Judo1 = [leadingc2,trailingC2,topc2,bottomc2]
NSLayoutConstraint.activate(Judo1)
}
}
追加时
.active = true
没有约束 return,所以让它们没有 .active = true
因为 return 在这种情况下是无效的
FIRE.translatesAutoresizingMaskIntoConstraints = false
let leadingc2 = FIRE.topAnchor.constraint(equalTo: view.topAnchor, constant: 0)
let trailingC2 = FIRE.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0)
let topc2 = FIRE.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0)
let bottomc2 = FIRE.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0)
judo1 = [leadingc2,trailingC2,topc2,bottomc2]
NSLayoutConstraint.activate(judo1)
更好地使用 apple 推荐的方法(如果您不需要参考)
NSLayoutConstraint.activate ([
FIRE.topAnchor.constraint(equalTo: view.topAnchor),
FIRE.bottomAnchor.constraint(equalTo: view.bottomAnchor),
FIRE.leadingAnchor.constraint(equalTo: view.leadingAnchor),
FIRE.trailingAnchor.constraint(equalTo: view.trailingAnchor)
])
同样当常量为零时,去掉它