以编程方式重新排序子视图在 tableViewCell 中不起作用
Reordering subviews programatically won't work in a tableViewCell
我正在尝试重新排序图像和堆栈视图(此处称为 labelsStack),它们都包含在另一个堆栈视图(此处称为堆栈)中。我的目标是以编程方式反转两个子视图的索引顺序,以便在运行时更改它们的位置(它们是水平分布的,所以理论上,如果我重新排序它们的索引,它应该在自动布局中重新排序它们)
我尝试从 Apple 文档更新索引、交换子视图、sendViewForward 等,但它不起作用,这是我的 tableViewCell 的代码:
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func layoutSubviews() {
cellImage.layer.cornerRadius = cellImage.bounds.height / 3
cellImage.clipsToBounds = true
if incoming {
} else {
// as one of the many methods that didn't work
self.stack.insertSubview(cellImage, belowSubview: labelsStack)
}
}
您可以创建两组替代约束,一组用于默认顺序,另一组用于相反顺序。默认约束是以 1
结尾的约束
要最初停用替代设置,您可以使用检查器并更改 已安装 复选框
您的视图控制器现在应该有 6 个出口:
@IBOutlet weak var topViewTopConstraint1: NSLayoutConstraint!
@IBOutlet weak var bottomViewTopConstraint1: NSLayoutConstraint!
@IBOutlet weak var bottomViewBottomConstraint1: NSLayoutConstraint!
@IBOutlet weak var topViewTopConstraint2: NSLayoutConstraint!
@IBOutlet weak var bottomViewTopConstraint2: NSLayoutConstraint!
@IBOutlet weak var topViewBottomConstraint2: NSLayoutConstraint!
现在要激活您可以使用的另一组约束:
self.topViewBottomConstraint2.active = true
self.topViewTopConstraint2.active = true
self.bottomViewTopConstraint2.active = true
self.topViewTopConstraint1.active = false
self.bottomViewBottomConstraint1.active = false
self.bottomViewTopConstraint1.active = false
反之亦然
我正在尝试重新排序图像和堆栈视图(此处称为 labelsStack),它们都包含在另一个堆栈视图(此处称为堆栈)中。我的目标是以编程方式反转两个子视图的索引顺序,以便在运行时更改它们的位置(它们是水平分布的,所以理论上,如果我重新排序它们的索引,它应该在自动布局中重新排序它们)
我尝试从 Apple 文档更新索引、交换子视图、sendViewForward 等,但它不起作用,这是我的 tableViewCell 的代码:
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func layoutSubviews() {
cellImage.layer.cornerRadius = cellImage.bounds.height / 3
cellImage.clipsToBounds = true
if incoming {
} else {
// as one of the many methods that didn't work
self.stack.insertSubview(cellImage, belowSubview: labelsStack)
}
}
您可以创建两组替代约束,一组用于默认顺序,另一组用于相反顺序。默认约束是以 1
结尾的约束要最初停用替代设置,您可以使用检查器并更改 已安装 复选框
您的视图控制器现在应该有 6 个出口:
@IBOutlet weak var topViewTopConstraint1: NSLayoutConstraint!
@IBOutlet weak var bottomViewTopConstraint1: NSLayoutConstraint!
@IBOutlet weak var bottomViewBottomConstraint1: NSLayoutConstraint!
@IBOutlet weak var topViewTopConstraint2: NSLayoutConstraint!
@IBOutlet weak var bottomViewTopConstraint2: NSLayoutConstraint!
@IBOutlet weak var topViewBottomConstraint2: NSLayoutConstraint!
现在要激活您可以使用的另一组约束:
self.topViewBottomConstraint2.active = true
self.topViewTopConstraint2.active = true
self.bottomViewTopConstraint2.active = true
self.topViewTopConstraint1.active = false
self.bottomViewBottomConstraint1.active = false
self.bottomViewTopConstraint1.active = false
反之亦然