Skip to main content
 首页 » 操作系统

ios之swift 将多个项目与 NSLayoutConstraint 对齐

2024年01月01日34jirigala

我想在查看大量项目时与 CenterX 对齐。

此代码适用于 1 个项目:

let control_constraint_ItemAlign = NSLayoutConstraint(item: emailField, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0) 

但我想尝试这样的代码:

let control_constraint_ItemAlign =  
NSLayoutConstraint(item:[emailField,passwordField,loginButton], 
 attribute: NSLayoutAttribute.CenterX, 
 relatedBy: NSLayoutRelation.Equal, 
 toItem: self.view, 
 attribute: NSLayoutAttribute.CenterX, 
 multiplier: 1, 
 constant: 0) 

或者唯一的解决方案是为每个 Item 编写一个约束?

请您参考如下方法:

你可以遍历 View :

for view in [emailField,passwordField,loginButton] { 
    let control_constraint_ItemAlign =  
    NSLayoutConstraint(item:view, 
     attribute: NSLayoutAttribute.CenterX, 
     relatedBy: NSLayoutRelation.Equal, 
     toItem: self.view, 
     attribute: NSLayoutAttribute.CenterX, 
     multiplier: 1, 
     constant: 0) 
    self.view.addConstraint(control_constraint_ItemAlign) 
} 

或者,您可以将适当的选项传递给视觉格式语言