Skip to content

Instantly share code, notes, and snippets.

@safecat
Created July 15, 2015 05:51
Show Gist options
  • Save safecat/8c227b3e2d68de34e35e to your computer and use it in GitHub Desktop.
Save safecat/8c227b3e2d68de34e35e to your computer and use it in GitHub Desktop.
NSLayoutFormatOptions

#NSLayoutFormatOptions 翻译自:http://iosdevelopmentjournal.com/blog/2013/04/22/alignment-options-in-auto-laytout/

Options 的作用

constraintsWithVisualFormat:options:metrics:views: 函数中, options 参数是一个 bitmask,它指定了VFL中的元素如何对齐。举个例子,"V:[first][second][third]" 这一句VFL只告诉你了三个元素应该纵向堆叠在一起,但是没有说当它们宽度不同时该怎么办。

你可以再增加一些横向的 constraints,但是这些知识无聊的体力劳动。其实你可以传入一个 option,将它们的相对位置告诉排版引擎。

Options参数

有三组选项:针对纵向约束的、针对横向约束的、针对横向方向约束的。它们都是 NSLayoutConstraint 的一部分。

针对纵向约束的 Options

NSLayoutFormatAlignAllLeft - 左边缘对齐 NSLayoutFormatAlignAllRight - 右边缘对齐 NSLayoutFormatAlignAllLeading - 文字开始边缘对齐(英语: 左边缘, 希伯来语: 右边缘). NSLayoutFormatAlignAllTrailing - 与上一个相反 NSLayoutFormatAlignAllCenterX - 横向中心对齐

NSLayoutFormatAlignAllLeadingNSLayoutFormatAlignAllTrailing 通常针对的是多语言的APP。

针对横向约束的 Options

NSLayoutFormatAlignAllTop - 顶部对齐 NSLayoutFormatAlignAllBottom - 底部对齐 NSLayoutFormatAlignAllCenterY - 纵向中心对齐 NSLayoutFormatAlignAllBaseline - 基线对齐,对于文字view而言,是字母基线(例如 a,c,e 的底部,而非 g,p,j 的底部),对于非文字view而言,其实就是 NSLayoutFormatAlignAllBottom

针对横向方向约束

以下的约束都可以通过 | 与上面针对纵向约束的的options来组合使用。 NSLayoutFormatDirectionLeftToRight - 排版引擎从左至右 NSLayoutFormatDirectionRightToLeft - 排版引擎从右至左 NSLayoutFormatDirectionLeadingToTrailing - 排版引擎按照语言顺序(默认值)。

举个例子,如果VFL是|-50-[btn],那么默认的,按钮距离屏幕左边50px,如果选择NSLayoutFormatDirectionRightToLeft,则是反向的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment