约束UITableViewCell,错误的rightAnchor
Constraint UITableViewCell, wrong rightAnchor
我需要通过代码以编程方式约束 UITableViewCell...我正在尝试在单元格的 containerView 中创建一个子视图,这是实际代码:
contentView.addSubview(testContainerView)
testContainerView.leftAnchor .constraint(equalTo: contentView.leftAnchor , constant: 8).isActive = true
testContainerView.topAnchor .constraint(equalTo: contentView.topAnchor , constant: 0).isActive = true
testContainerView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: 0).isActive = true
testContainerView.rightAnchor .constraint(equalTo: contentView.rightAnchor , constant: 8).isActive = true
但问题是单元格的宽度似乎超过了屏幕尺寸...我以前从未遇到过这个问题。使用此方法创建单元格:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "slotCell") as! SlotTableViewCell2
cell.setCellDetail(currentSlot: listaSlots[indexPath.row])
return cell
}
约束有什么问题吗?
这是当前结果的图像:
The orange rect, is the testContainerView
您为 rightAnchor
使用了错误的常量。
试试下面的代码:
contentView.addSubview(testContainerView)
NSLayoutConstraint.activate([
testContainer.leftAnchor.constraint(equalTo: contentView.leftAnchor, constant: 8.0)
testContainer.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 0.0)
testContainer.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: 0.0)
testContainer.rightAnchor.constraint(equalTo: contentView.rightAnchor, constant: -8.0)
])
注意 rightAnchor
上的负常数。
额外提示:自动布局引擎喜欢在激活它们之前了解所有约束。使用上面显示的方法是配置约束的首选方法
额外提示2:如果你的App被任何RightToLeft Language Interface使用,它会被翻转。如果这不是预期的行为,请使用 leadingAnchor
& trailingAnchor
而不是 leftAnchor
& rightAnchor
我需要通过代码以编程方式约束 UITableViewCell...我正在尝试在单元格的 containerView 中创建一个子视图,这是实际代码:
contentView.addSubview(testContainerView)
testContainerView.leftAnchor .constraint(equalTo: contentView.leftAnchor , constant: 8).isActive = true
testContainerView.topAnchor .constraint(equalTo: contentView.topAnchor , constant: 0).isActive = true
testContainerView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: 0).isActive = true
testContainerView.rightAnchor .constraint(equalTo: contentView.rightAnchor , constant: 8).isActive = true
但问题是单元格的宽度似乎超过了屏幕尺寸...我以前从未遇到过这个问题。使用此方法创建单元格:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "slotCell") as! SlotTableViewCell2
cell.setCellDetail(currentSlot: listaSlots[indexPath.row])
return cell
}
约束有什么问题吗?
这是当前结果的图像:
The orange rect, is the testContainerView
您为 rightAnchor
使用了错误的常量。
试试下面的代码:
contentView.addSubview(testContainerView)
NSLayoutConstraint.activate([
testContainer.leftAnchor.constraint(equalTo: contentView.leftAnchor, constant: 8.0)
testContainer.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 0.0)
testContainer.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: 0.0)
testContainer.rightAnchor.constraint(equalTo: contentView.rightAnchor, constant: -8.0)
])
注意 rightAnchor
上的负常数。
额外提示:自动布局引擎喜欢在激活它们之前了解所有约束。使用上面显示的方法是配置约束的首选方法
额外提示2:如果你的App被任何RightToLeft Language Interface使用,它会被翻转。如果这不是预期的行为,请使用 leadingAnchor
& trailingAnchor
而不是 leftAnchor
& rightAnchor