#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
,则是反向的。