自动布局中的视觉格式字符串语法
Posted
技术标签:
【中文标题】自动布局中的视觉格式字符串语法【英文标题】:Visual Format String Grammar in auto layout 【发布时间】:2013-10-30 04:09:00 【问题描述】:我想学习自动布局,看到这个official document。在视觉格式字符串语法一章,我不懂替换规则。什么是“?”而“*”是什么意思?
【问题讨论】:
这些是正则表达式规则。 * 表示 0 或更多,而 ?表示 0 或 1。使用语法时不需要它,它只是展示如何格式化 VFL 字符串。 同意,语法不是很重要。请看一些例子。 【参考方案1】:语法的定义以EBNF的形式给出,在计算机科学中用于描述context-free grammars。
具体来说,
?
表示可选性,意思是 0 或 1 次重复
*
表示 0 次或多次重复
|
表示另一种选择
例如
(<predicate>(,<predicate>)*)
表示<predicate>
,后跟任意数量的,<predicate>
,可能为0。
和
[<viewName>(<predicateListWithParens>)?]
表示[<viewName><predicateListWithParens>]
或仅表示[<viewName>]
终于
H|V
表示H
或V
。
【讨论】:
非常感谢。我明白了。以上是关于自动布局中的视觉格式字符串语法的主要内容,如果未能解决你的问题,请参考以下文章
使用视觉格式化语言在代码中自动布局 UIViewController