问题标签 [nslayoutanchor]

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 投票
1 回答
818 浏览

ios - 使用布局锚将 UiTableView 固定到(视图控制器)视图

我想将一个表视图“固定”到它的容器上,即视图控制器的视图。由于 UIView 没有锚属性,我尝试使用 layoutMarginsGuide 来完成。

UIView 不提供布局边距属性的锚属性。相反, layoutMarginsGuide 属性提供了一个 UILayoutGuide 对象来表示这些边距。使用指南的锚属性来创建您的约束。

但是运行此代码我收到以下错误:

重要的部分:

但这应该如何工作?

0 投票
3 回答
9245 浏览

ios - 在 iOS 上,边距、边缘插入、内容插入、对齐矩形、布局边距、锚点...之间有什么区别?

iOS 社区中似乎有几个不同的选项/术语和人们在布局方面使用(例如 UIEdgeInsets 是一种类型,但有时我听到/阅读“设置插图”或布局边距与布局指南)。

我总是能够找到一个可行的选择。但我永远不确定我是否使用了正确的工具来完成这项工作。

有人可以帮助在布局的这些不同方面以及何时以最佳方式使用它们之间提供一些清晰度吗?

0 投票
2 回答
2742 浏览

ios - 编程约束 - 使用布局锚覆盖整个超级视图

是否可以使用布局锚来覆盖整个超级视图的屏幕?

使用NSLayoutConstraints,我可以使用下面的代码实现这个效果

我想按照文档中的建议切换到布局锚点。我试过这样做:

或这个

但两者都没有工作。我最终得到的不是完全覆盖容器视图,而是所有 4 个侧面的填充。

在此处输入图像描述

0 投票
1 回答
3644 浏览

autolayout - 如何设置 NSLayoutAnchor 以生成纵横比为 1:1 的居中子视图

这听起来并不难,但经过数小时的尝试,我无法找到合适的解决方案。

问题:我想设置约束(使用 NSLayoutAnchor 类)以使子视图(colorImageView)在父视图中居中,纵横比为 1:1并且始终在有时具有宽度 > 高度的父视图中可能的最大尺寸或高度 > 宽度。

示例 1:SuperViewSize = width : 80, height = 100 -> 子视图的高度和宽度应为 80 并以 (40/50) 为中心

示例 2:SuperviewSize = width : 60, height = 50 -> 子视图的高度和宽度应为 50 并以 (30/25) 为中心

我不想/它不能解决问题/硬编码 widthConstraint = min(superviewWidth, superviewHeight) 因为在创建子视图时,最终没有定义超级视图边界->所以我需要一个约束。

这是我迄今为止的尝试(仍然缺少在不同的超级视图中将高度和宽度设置为最大可能的约束:

我真的很感激一个提示,如何做到这一点。提前致谢 :))

0 投票
1 回答
654 浏览

ios - 更改动作视图的布局锚点

我有一个 upperLabel、一个视图和一个按钮。

ViewDidLoad()方法中,我为视图提供了一些布局约束。点击按钮我需要更新这些约束(即视图应该向下移动)。我怎样才能做到这一点。

这是我的代码。但它不起作用。

该操作中的代码如下。

根据上面的代码,keyView 应该在单击按钮时向下移动。但它并没有向下移动。

请帮帮我。提前致谢。

0 投票
2 回答
8194 浏览

ios - “无法将 'NSLayoutDimension' 类型的值转换为预期的参数类型 NSLayoutAnchor

我正在尝试在我的 Swift 3 中添加一个子视图tableView。我希望前导锚点与父视图宽度的 0.05 倍相关(tableView)。

当我写以下内容时:

我明白了

如何使用创建所需的领先约束NSLayoutAnchor

0 投票
2 回答
703 浏览

swift - 扩展 NSLayoutAnchor 中的编译错误

我正在尝试在 NSLayoutAnchor 上创建一个扩展方法来接受乘数。我得到一个奇怪的 Swift 编译错误(Swift 3,XCode 8.2.1),不是在扩展文件中,而是在模块的相应 .h 文件(该文件由编译器自动生成)中:

错误指向/* AnchorType */并说:“预期类型”。嗯,这是有道理的,因为/* AnchorType */它不是类型而是注释。但是我AnchorType在方法签名中使用了类型参数。

扩展源码如下:

0 投票
3 回答
4898 浏览

ios - iOS - 将视图锚定到屏幕顶部,在状态栏后面

我有一个带有默认状态栏的 CollectionViewController,它全部嵌入在 NavigationController 中。

我正在尝试重现一种效果,其中我有一个视图锚定到屏幕顶部,因为我的导航控制器是完全透明的,我的状态栏也是透明的,但是当我将我的视图锚定topAnchor到NavigationController bottomAnchor,因为它“认为”屏幕顶部是 navController 的底部。

在将视图锚定到顶部之后,我设法绕过了这个,我给了它一个负的 topPadding,现在它就是我想要的位置。

我知道有一种方法可以将布局扩展到顶部屏幕,但我想不通。

你能给我一个提示吗?

我正在尝试这个:

想要的

我得到这个:

结果

空白为状态栏高度 + NavigationController 高度

谢谢

0 投票
2 回答
2817 浏览

ios - `NSLayoutYAxisAnchor` 如何用作变量?

如何NSLayoutYAxisAnchor定义类型变量?

以下不起作用,但希望能说明我的意思:

0 投票
1 回答
1589 浏览

ios - 使用 NSLayoutAnchor 在两个标签之间创建约束?

我正在以编程方式创建一个视图,并且需要在两个标签之间设置约束。我最近刚刚发现 NSLayoutAnchor 并觉得使用它是一个不错的选择,但我不确定如何在两个不同的事物(即标签、图像视图等)之间创建约束。我知道一般设置看起来像这样:

您将如何在两个标签之间设置约束?