#NSLayoutFormatOptions 翻译自:http://iosdevelopmentjournal.com/blog/2013/04/22/alignment-options-in-auto-laytout/
在constraintsWithVisualFormat:options:metrics:views: 函数中, options 参数是一个 bitmask,它指定了VFL中的元素如何对齐。举个例子,"V:[first][second][third]" 这一句VFL只告诉你了三个元素应该纵向堆叠在一起,但是没有说当它们宽度不同时该怎么办。
你可以再增加一些横向的 constraints,但是这些知识无聊的体力劳动。其实你可以传入一个 option,将它们的相对位置告诉排版引擎。
有三组选项:针对纵向约束的、针对横向约束的、针对横向方向约束的。它们都是 NSLayoutConstraint 的一部分。
NSLayoutFormatAlignAllLeft - 左边缘对齐
NSLayoutFormatAlignAllRight - 右边缘对齐
NSLayoutFormatAlignAllLeading - 文字开始边缘对齐(英语: 左边缘, 希伯来语: 右边缘).
NSLayoutFormatAlignAllTrailing - 与上一个相反
NSLayoutFormatAlignAllCenterX - 横向中心对齐
NSLayoutFormatAlignAllLeading 和 NSLayoutFormatAlignAllTrailing 通常针对的是多语言的APP。
NSLayoutFormatAlignAllTop - 顶部对齐
NSLayoutFormatAlignAllBottom - 底部对齐
NSLayoutFormatAlignAllCenterY - 纵向中心对齐
NSLayoutFormatAlignAllBaseline - 基线对齐,对于文字view而言,是字母基线(例如 a,c,e 的底部,而非 g,p,j 的底部),对于非文字view而言,其实就是 NSLayoutFormatAlignAllBottom
以下的约束都可以通过 | 与上面针对纵向约束的的options来组合使用。
NSLayoutFormatDirectionLeftToRight - 排版引擎从左至右
NSLayoutFormatDirectionRightToLeft - 排版引擎从右至左
NSLayoutFormatDirectionLeadingToTrailing - 排版引擎按照语言顺序(默认值)。
举个例子,如果VFL是|-50-[btn],那么默认的,按钮距离屏幕左边50px,如果选择NSLayoutFormatDirectionRightToLeft,则是反向的。