问题标签 [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 投票
2 回答
2434 浏览

ios - swift中的VFL约束:由于没有超级视图而崩溃

我想以编程方式做一个简单的布局,但我想念一些简单的东西,或者有一些不合适的东西。下面的 ViewController 应该在超级视图中将标签居中。但是,它会因这条修剪消息而崩溃:The view hierarchy is not prepared for the constraint ... When added to a view, the constraint's items must be descendants of that view (or the view itself). This will crash if the constraint needs to be resolved before the view hierarchy is assembled... View not found in container hierarchy: ... That view's superview: NO SUPERVIEW带有此错误消息的其他 SO 问题大部分都使用 nibs,我试图避免这种情况,或者使用Obj-C而不是swift. 这个问题有点涉及这个话题,但有点老了。

谁能指出我正确的方向?

0 投票
2 回答
16829 浏览

ios - iOS8自动布局以编程方式固定到相对布局边距

我有一个 UI 元素(UISwitch实际上,但实际上并不重要),它的前导和尾随空间都固定在 Interface Builder 中的 superview 上。Xcode 6 中的约束如下所示:

约束销

前导空间的约束实际上是相同的。约束值为42.0 点

这正是我想要的,因为对于不同的设备,我可以更改layoutMargins属性UIView并且约束将正常工作,以增加视图之间的边距。

现在我想在代码中添加另一个视图,该视图也将前导和尾随空间固定到它的超级视图边距,因此相同的layoutMargins超级视图设置将起作用。

我使用以下语法使用视觉格式语言固定视图:

这行得通,但是layoutMargins使用这个约束属性没有效果,所以它显然不是固定到边距,而是直接固定到超级视图。

所以我的问题是:

如何使用视觉格式语言将 UI 元素空间固定到代码中的边距?或者如果不可能,如何使用constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:API 进行固定?

0 投票
2 回答
478 浏览

ios - 视觉格式自动布局中灵活大小的元素如何决定使用哪个谓词

在以可视化格式以编程方式使用自动布局时,我对在给定两个谓词时它如何做出决策感到困惑。例如,以下约束:

到目前为止,在我尝试的每台设备上,无论是 iPhone 5S、6 还是 iPad,宽度始终为 300。在什么情况下宽度会大于 300?此外,iOS 7 是我使用 Swift 部署此应用程序的目标。

从本质上讲,我希望我的视图在 iPhone 上占据大部分屏幕宽度,但在 iPad 上占据一半多一点。

我的解决方案

基于 rdelmar 的回答。

0 投票
1 回答
1580 浏览

ios - AutoLayout 令人费解的约束错误

我正在尝试在自定义导航栏上添加子视图。正在使用自定义导航栏,以便增加栏高度以适应额外的子视图。

问题是我正在尝试使用 AutoLayout 添加新视图,当我向新视图添加 VFL 水平约束时,我在 NSLog 中收到关于“无法同时满足约束”的错误,我不明白.

这是我正在做的事情:

这是我在日志文件中遇到的错误:

如果我从 VFL 中删除标准间距,这意味着我使用:

我没有收到警告。我不明白为什么会这样。

另请注意,在添加我自己的约束之前,UINavigationBar约束 ( self.constraints) 为空,因此这不会导致任何冲突的约束。

我还在UINavigationBar self.constraints这两种情况下都做了一个 NSLog ,这是案例 1 中的 NSLog (使用 VFL 时没有错误H:|[loadingView]|

虽然这是我使用 `H:​​|-[loadingView]-|` 时得到的

0 投票
2 回答
382 浏览

ios - 多个按钮的代码中的水平约束IOS

当我在 Xcode 中使用 Visual Format Language 对齐 4 个按钮时,我添加了

它工作正常。但是当我尝试应用水平约束时,我做到了

我想出的最佳解决方案是将它们成对对齐,例如

现在我试图用 1 行代码来做,但没有成功。

任何帮助,将不胜感激。

0 投票
1 回答
143 浏览

ios - 使用 NSLayoutConstraint constraintWithVisualFormat 在基本 UITableVewCell 中设置图像视图

我必须在不使用任何 xib 或情节提要的情况下执行此 UIview 子类,它需要是 1 个文件,因此我需要在代码中设置此 tableview 并避免子类化 UITableViewCell。

我正在尝试将图像视图设置为 V:|-5-[imageview]-5-| 和 H:[iamgeview(width = height)]-5-| 在单元格的 contentView 中。

我得到的只是我添加的所有约束都被破坏了,并且单元格不在我想要的位置。

基本单元格位于基本样式单元格中。我要做的就是在视图的末尾添加一个图像视图,而这目前正在变成一场噩梦。

我在代码中设置图像视图如下。

}

当单元格加载时,我收到此错误:

<NSLayoutConstraint:0x7fb7b6369380 V:[img(44)] (Names: img:0x7fb7b6368fc0 )>

<NSLayoutConstraint:0x7fb7b636aaf0 H:[img]-(5)-| (Names: Contentview:0x7fb7b6372a30, img:0x7fb7b6368fc0, '|':Contentview:0x7fb7b6372a30 )>

<NSLayoutConstraint:0x7fb7b63697e0 V:|-(5)-[img] (Names: img:0x7fb7b6368fc0, Contentview:0x7fb7b6372a30, '|':Contentview:0x7fb7b6372a30 )>

0 投票
1 回答
324 浏览

ios - iOS 自动布局视觉格式语言翻译

我有以下约束:

我想用它做一些动画,因此我需要将它参数化。我想拥有相同的东西,但使用 API。这是我尝试过的,但它不起作用:

我想要的是让两个视图具有相同的高度。

0 投票
2 回答
128 浏览

ios - 使用*仅*视觉格式的中心视图?

我正在尝试将 2 个不同高度的视图垂直居中。

这设法使两者的中心垂直对齐,但它们位于超级视图的底部! 在此处输入图像描述

我不仅要相对于彼此垂直居中,还要在超级视图中垂直居中。

我添加了这样的约束并且它有效:

在此处输入图像描述

但我想知道,这是否可以仅使用视觉格式来实现?

0 投票
1 回答
919 浏览

xcode - 视觉格式语言:“Swift”图像约束不起作用

我在构建约束方面遇到问题。我是使用视觉格式语言的新手。我需要帮助。我对两个图像进行了限制,高度还可以,但水平放置已关闭。它们似乎以不同的长度放置在不同的设备上。我试图将它们保持在一个按钮的中心,但是尽管手机的宽度很大,但这两个图像始终遵循左侧和右侧的 -70- 。如何让它适应手机的宽度?哦,考虑我有图像 setTranslatesAutoresizingMaskIntoConstraints(false)

我知道这很难看哈哈。就像我说的,这是我第一次做约束。对不起!

0 投票
2 回答
329 浏览

ios - 在 VFL 中创建垫片

AutoLayoutbyExample 通过 Apple 开发者文档

任何人都有一个如何创建间隔视图以在 VFL 中设置标签之间的间距相等的示例?

我只是想知道如何在 Swift 中创建垫片以确保标签之间的宽度始终相等但优先级最低。

在此处输入图像描述