如何编写手动AutoLayout约束?

如何编写手动AutoLayout约束?

问题描述:

我是新手iOS开发人员,我想了解如何编写手册AutoLayout约束。正如我找到的链接,它可以在视觉上让AutoLayout工作。请参阅下面的链接了解更多信息。如何编写手动AutoLayout约束?

网址:https://autolayoutconstraints.com/

但它不允许它是如何工作过,当其他组件存在和他们的关系相应。

感谢您提供了如此迅速的回复,希望我能更清楚地解决我的问题。

我假设你的意思是通过代码应用约束。

Autolayout自成立以来一直在不断发展。 要通过代码应用约束,您可以使用以上三种技术中的任何一种。 (最简单的,并在底部的最新技术)

旧冗长约束使用的方法,(constraintWithItem

+(instancetype)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(nullable id)view2 attribute:(NSLayoutAttribute)attr2 multiplier:(CGFloat)multiplier constant:(CGFloat)c 

视觉格式语言https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/VisualFormatLanguage.html

布局锚https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/ProgrammaticallyCreatingConstraints.html#//apple_ref/doc/uid/TP40010853-CH16-SW5

你可以谷歌大胆的知道更多。 但这些没有什么比https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/index.html#//apple_ref/doc/uid/TP40010853-CH7-SW1 这个文档有应用约束,与其他组件(视图)及其关系的例子。

您可以使用第三方库,如SnapkitSwiftyLayout

你问如何以编程方式设置你的约束?如果是的话,你打算使用故事板还是以编程方式实施一切?

如果你想做到这一切编程它会看起来像

class someViewController: UIViewController{ 
    let myLabel: UILabel = { 
     let label = UILabel() 
     label.translatesAutoresizingMaskIntoConstraints = false 
     label.text = "Hello" 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     view.addSubView(myLabel) 

     myLabel.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true 
     myLabel.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true 
     myLabel.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true 
     myLabel.heightAnchor.constraint(equalToConstant: 50).isActive = true 
    } 
} 

这将在您的视图控制器创建一个标签,其固定在左右和底部的50个像素的设定高度。您可以通过查找锚点并将其设置为所需的值来找到该物品的任何一个约束。请务必将译文自动化超级邮件限制约束条件设置为false,否则将不会遵循您的约束条件。