问题标签 [visual-format-language]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
14 回答
88060 浏览

ios - 使用可视格式语言在其父视图中居中视图

我刚开始学习 AutoLayout for iOS 并查看了 Visual Format Language。

这一切都很好,除了一件事:我只是无法在其超级视图中获得中心视图。
VFL 可以做到这一点,还是我需要自己手动创建约束?

0 投票
1 回答
6287 浏览

ios6 - 如何使用自动布局约束使具有自定义宽度的按钮居中?

请看以下代码:

我遇到的问题是H:|-[start(100)]-|行不通。我想要的是一个宽度为 100 的按钮,以 X 轴为中心,并以默认边距连接到屏幕底部。一旦我删除它(100),这个按钮就会延伸到屏幕宽度减去默认边距。当我指定自定义宽度时,我认为自动布局系统无法计算出左右边距应该是什么。我得到一个Unable to simultaneously satisfy constraints.错误。我想这与 中的破折号有关H:|-[start(100)]-|,它需要具有流体宽度才能将start元素附加到superview,而不是默认边距。

关于我如何解决这个问题的任何想法?

更新(感谢 ghettopia):

这有效(注意我UINavigationController在应用程序委托中使用 a 并且inself.view.translatesAutoresizingMaskIntoConstraints = false被注释掉了):viewDidLoadTestController

正确的画面

伟大的。现在我得到一个蓝屏,按钮以 X 轴为中心,底部有默认边距,正如我想要的那样。但是,根据我所阅读self.view.translatesAutoresizingMaskIntoConstraints = false的内容,需要使自动布局工作。为了实现这一点,这也有效(请注意,我UINavigationController这次没有使用 a 并且self.view.translatesAutoresizingMaskIntoConstraints = false正在viewDidLoad使用TestControllerIS):

但这似乎不是一个合适的解决方案。我需要一个UINavigationController来创建我的应用程序结构。问题是当我不使用上述任何解决方案时,我会得到一个黑屏,中间有一个按钮死了(在两个轴上)。观点似乎被打破了: 黑屏

想法?我应该删除self.view.translatesAutoresizingMaskIntoConstraints = false并忘记它还是确实需要它?如果是,那我的代码一定有问题。

更新 2:

有趣的教程:iOS 6 中的自动布局:通过代码添加约束。作者不使用self.view.translatesAutoresizingMaskIntoConstraints = falsein viewDidLoad,仅在子视图上使用。

更新 3:

我想我可能已经通过转移self.view.translatesAutoresizingMaskIntoConstraints = falseinit方法而不是viewDidLoad. 虽然不知道为什么会这样,但屏幕现在看起来与屏幕截图相同,就像我最初的意图一样。这是更新的代码:

0 投票
2 回答
682 浏览

ios - NSLayoutConstraint constraintWithVisualFormat 不能引用 superView

这是一些代码:

为什么它最终看起来像这样?我的 superView 有什么问题吗?

混乱约束的图像]

这是我的包含视图的设置方式: 包含视图的 IB 设置

0 投票
1 回答
1191 浏览

ios - iOS:视觉格式约束被打破

我试图在地图上放置一个按钮并将其限制为从左侧开始 10 点,从底部向上 10 点。但是,当我在模拟器中运行它时,它告诉我我的约束被打破了。这是我的代码。我错过了什么?

0 投票
2 回答
1688 浏览

ios - 自动布局 VFL:在水平约束中对齐所有尾随

我有四个标签堆叠在前一个下方,但将其基线与其内容视图的顶部对齐,而不是彼此垂直间距。

我是这样用代码做的

现在,我希望所有标签都通过尾随空间与其父视图对齐。

我可以使用唯一的 VFL 字符串来做到这一点吗?像这样的东西,虽然这个例子会使应用程序崩溃:

0 投票
1 回答
285 浏览

iphone - 自动布局以编程方式无法正确显示且未接收点击事件

我在该视图导航栏中有一个视图(320x480 还需要使其与 iphone5 兼容)右键单击我想显示一个高度和宽度为 140x140 的视图,所以它看起来像正确的与主视图对齐并位于导航栏下方(或者我们可以说是视图顶部)

为此,如果我写下面的代码,它也不能正确显示我的子视图(有按钮)是不可点击的。

在这种情况下,我不必使用 XIB。我必须以编程方式设置它。

有什么想法吗?怎么了?

0 投票
1 回答
78 浏览

ios - ios:我的 vfl 约束已损坏

我的 VFL 约束不断打破,我不知道为什么。这是一个具有自定义背景的 UIButton。我希望它具有灵活的宽度,同时从视图的任一侧保持 10 像素的空间。这是代码:

0 投票
1 回答
237 浏览

ios - 自动布局,将视图固定到高度为零的同级

我正在使用 AutoLayout 在 UITableViewCell 子类中定位子视图。视图层次结构如下:

  • 顶部容器视图
    • 图像视图
    • 评论容器视图
      • 头像图片查看
      • 喜欢按钮
      • 用户名标签
      • 评论按钮
      • 评论标签

当图像视图中有图像时,我建立的约束按预期工作。但是,当没有图像且图像视图的高度为 0 时,评论视图无法填充其容器(即其顶部不等于其父视图的顶部)。我希望如果视图 A 的顶部固定到视图 B 的底部并且视图 B 的高度为 0,则视图 A 的 origin.y 将是视图 B 的 origin.y。但事实并非如此。谁能告诉我我的 AutoLayout 格式有什么问题?

_commentView 中的子视图还有其他限制,我会根据要求发布这些限制。

这是正在发生的事情的截图:

第二个单元格顶部和蓝色评论容器顶部之间的间隙

第二个单元格中的预期效果(这是我将格式字符串修改为 : 时得到的效果@"|[_commentView]|):显然,这打破了存在图像的情况。

在此处输入图像描述

0 投票
0 回答
143 浏览

uitableview - 为 UITableView 和 UILabel 设置自动布局约束时出错

有一个以编程方式创建的 UITableView 和一个在界面生成器中创建的 UILabel。我想设置自动布局约束,以便表格始终出现在标签下方并保持固定距离。这是我的代码:

但是当我运行它时程序崩溃了。它是我应用程序的第一个视图控制器。

0 投票
1 回答
139 浏览

ios - 根据其他标签文本设置 UILabel 约束

我有一个带有 2 个标签的 UITableViewCell (1) 用于人名 (2) 用于关于他的注释。我需要使用 VFL 将标签布局在另一个之上,并且效果很好。

但是 - 如果注释为空,我希望名称标签在单元格中垂直居中。

我需要添加其他约束还是有任何其他方法可以在 VFL 中设置此条件?

谢谢沙妮