ios - 使用 NSLayoutConstraint 时导致编译错误
问题描述
当我使用 NSLayoutConstraint 时,我的代码没有编译。我正在尝试使用代码而不是使用情节提要来做所有事情。我不知道这是否正在发生,因为我错过了一些东西,但我现在想不出为什么这不起作用。错误发生在judo = line
.
我收到错误消息:
无法将类型“[()]”的值分配给类型“[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
没有约束返回,所以让它们没有.active = true
,因为在这种情况下返回是无效的
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)
使用苹果推荐的更好方法(如果您不需要参考)
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)
])
同样当常数为零时,摆脱它
推荐阅读
- sql-server - 从 VB.Net 导出数据到 SQL Server
- python - Kivy TextInput 赋予相同的变量
- kiwi-tcms - 从 v6.4 迁移到 v6.5.3 后菜单栏中的链接导致 500 HTTP 错误
- python-3.x - 比较两个数据框列
- asp.net-mvc - asp.net mvc razor veiwbag 不适用于实体框架工作 tolist()
- mutt - 在不多的搜索结果中,如何找到包含每封电子邮件的邮件目录?
- powershell - 注册表值设置更改后不生效
- angular - 延迟加载模块中的引导
- logging - NLog 删除 3 个月前的文件
- android - 从软键盘 android xamarin 禁用表情符号