问题标签 [ios-autolayout]

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 回答
537 浏览

ios - iOS:通过删除子视图来调整子视图的大小

  • 我有一个包含 3 个subivews名为view A, view B,的视图view C
  • 当我删除子视图时,意味着我需要自动设置边距以进行调整。
  • 当我删除view A手段时,剩余views的必须自动向上移动。

注意:不在autolayout. 请告诉它如何可能在automask

在此处输入图像描述

0 投票
2 回答
867 浏览

objective-c - 自动布局的旋转不起作用

当我在 IB 中打开 Autolayout 旋转我的设备时,不会调用以下方法。

首先,上述方法是否不适用于自动布局?该方法在 Autolayout 关闭的情况下被调用。我正在尝试更改旋转视图的背景图像,不知道如何通过启用自动布局约束来实现这一点?

我也尝试使用Moin的过程,但我有一个巨大的视图层次结构,并且这些方法是从 superview 开始调用的,而且我在其他方法中有很多其他代码,比如。所以它没有帮助

0 投票
2 回答
2015 浏览

ios - iOS:多个按钮的自动布局

在我的应用程序中,我以这种方式查看 4 英寸屏幕:

在此处输入图像描述

然后我想在应用程序在 3.5 英寸屏幕的 iPhone 上运行时减小按钮的大小,所以我以这种方式设置布局:

在此处输入图像描述

但最后我以这种方式获得了一个观点

在此处输入图像描述

这样我的按钮大小还可以,但它们没有对齐,所以在这种情况下,对齐按钮的方法是什么?

谢谢

0 投票
20 回答
101780 浏览

ios - 什么是 NSLayoutConstraint“UIView-Encapsulated-Layout-Height”,我应该如何强制它干净地重新计算?

UITableView在 iOS 8 下运行,我正在使用故事板中约束的自动单元格高度。

我的一个单元格包含一个单元格UITextView,我需要它根据用户输入收缩和扩展 - 点击以收缩/扩展文本。

我通过向文本视图添加运行时约束并更改约束上的常量以响应用户事件来做到这一点:

每当我这样做时,我都会将其包装在tableView更新中并调用[tableView setNeedsUpdateConstraints]

当我这样做时,我的单元格确实会扩展(并在此过程中进行动画处理),但我会收到约束警告:

388 是我计算的高度,其他限制UITextView是我的 Xcode/IB 。

最后一个困扰着我——我猜这UIView-Encapsulated-Layout-Height是第一次渲染时计算出的单元格高度——(我将UITextView高度设置为> = 70.0)但是这个派生的约束随后推翻了一个更新用户 cnstraint。

更糟糕的是,虽然布局代码说它试图打破我的高度约束,但它没有——它继续重新计算单元格高度,一切都按照我的意愿绘制。

那么,什么是NSLayoutConstraint UIView-Encapsulated-Layout-Height(我猜它是自动调整单元格大小的计算高度),我应该如何强制它干净地重新计算?

0 投票
1 回答
4307 浏览

ios - iOS自动布局 - 大小小于或等于不等式约束歧义

我不明白为什么以下设置会给我不等式约束歧义错误。一般的想法(虽然在这个问题中简化了)是将视图固定在顶部和左侧,给它固定的高度和可变的宽度。因此,添加了 4 个约束:3 个具有相等的值(顶部、左侧和高度)和 1 个小于或等于。它给了我这个错误。最后,我想要实现的是将其他 new 放在此 View 的右侧,并指定它们之间的间距。所以,每当左视图改变宽度时,右视图就会改变 X。

0 投票
1 回答
728 浏览

ios - 具有可变数量子视图的 UITableViewCell 的动态高度和 autoLayout

我处于一种情况,我希望 UITableViewCells 根据数据具有可变数量的子视图。显然这会导致每个单元格的动态高度。我研究并发现了一篇非常好的帖子,在Using Auto Layout in UITableView for dynamic cell layouts & variable row heights。github 上的示例项目展示了如何计算具有固定数量子视图的单元格的高度,即两个 UILabel,其中一个标签是多行的。我明白这一点,但就我而言,这些标签的数量可能会有所不同。

我的第一种方法是,我可以在 Cell 的 contentView 中添加一个 UIView,然后在该视图中添加所有可用的 UILabel。(可能在计算 heightForRowAtIndexPath 时)。然后在 tableViewCell 子类的 UpdateConstraints 中添加所有必需的约束,并希望 UIView 将扩展以获取其中所有 UILabel 的组合高度。但这似乎正在这样做。我知道 UIView 没有计算 intrinsicContentSize 。但是我们现在如何确保它占用了它的子视图的大小。

我尝试的第二种方法是直接在单元格的内容视图中添加 UILabels。这适用于某些标签,但对于某些标签来说,它只是搞砸了。

我想我在这里与两个主要问题作斗争:

  1. 我什么时候应该创建单元格的动态子视图?

  2. 如何根据它的 subViews 的 intrinsicSize 在 UITableViewCell 内动态调整 UIView(不是 UILabel)的大小。

  3. 我可以在这里使用可重复使用的单元格标识符吗?因为每一行根据内容都是唯一的。

我正在使用 @smileyborg 在https://github.com/smileyborg/TableViewCellWithAutoLayout提供的代码

0 投票
4 回答
12300 浏览

ios - iOS中自动布局和自动调整大小的基本区别是什么

我一直在寻找 Auto Layout 和 Auto Resizing 之间的正确区别,但找不到确切的答案。我可以在哪里使用“自动布局”以及在哪里使用“自动调整大小”?任何帮助都将是感谢的一部分。

0 投票
1 回答
1534 浏览

ios - 自动布局设计适应 iPhone 3.5 英寸和 iPhone 4 英寸屏幕尺寸

我正在创建一个通用应用程序。现在我想在屏幕上放置两个按钮:

两个按钮的位置

我尝试使用自动布局和界面生成器(确切地说是 iOS 设计器),但我只设法将按钮安装在一种屏幕尺寸(例如 3.5 英寸显示器)上。因此,我将按钮的大小和间距设置为顶部(一个到超级视图的顶部,一个到上面按钮的底部)。

但是有没有办法让它适应屏幕尺寸?例如,按钮的宽度是视图宽度减去某个间隙。或者像图片中那样将按钮居中(这很容易)?这可能吗?

另一个选项是在代码中做所有事情(创建按钮和创建约束)。在这里,我可以查询视图宽度等以相应地创建我的按钮。这是唯一的方法吗?

如何管理?

编辑:

现在我在视图控制器上放置了一个空标签。在这个标签上,我添加了以下约束:

  • 将 Y 中心对齐到:Superview,等于:0
  • 将中心 X 对齐到:Superview,等于:0

在我的按钮上,我设置了固定的高度和宽度。比超级视图的尾随空间等于 50(水平居中有效,因为两个屏幕尺寸具有相同的宽度)。顶部的按钮具有以下约束:

  • 将 Y 中心对齐到:标签,等于:20

底部的按钮得到:

  • 顶部空间到:标签,等于:20

不知道为什么它需要不同的约束,但在 GUI 编辑器中,我选择了按钮的底部或顶部。这里的标签也得到:

  • 将 Y 中心对齐到:顶部按钮,等于:20
  • 顶部空间到:底部按钮,等于:20

现在无论是 3.5 英寸还是 4 英寸显示屏,我都将两个按钮置于屏幕中央。一个缺点是导航控制器和工具栏的间距在 3.5 英寸显示屏上非常小。在这里我可以使按钮变小。还有其他选择吗?最初的想法是始终将空间设置为顶部元素,但在 4 英寸屏幕上,底部的空间比底部要多。

0 投票
2 回答
137 浏览

xcode5 - 使用自动布局更改应用程序字体时出现标签文本布局问题

我正在我的应用程序中进行自动布局。我有一个功能可以通过滑块移动来增加整个应用程序的字体大小。问题是当我增加字体大小时,标签的文本会变成椭圆。

我已经给我的标签一个固定宽度和增加可变高度的约束,但这并不能解决任何问题。

我是否需要提供换行模式(自动换行)并指定每个文本的行数或有任何其他解决方案?

任何帮助将不胜感激。

0 投票
2 回答
73 浏览

ios - iOS 按钮位置 x,y 3,5 英寸到 4 英寸

我正在尝试对我的 3.5 英寸到 4 英寸的屏幕进行自动布局,但“PEDIR”按钮太大或粘在标签或底部。我需要该按钮位于从标签“SEU PEDIDO ...”到底部的左侧空间的中心。最好的方法是什么?

3,5 英寸:

3,5 英寸

4 英寸:

4英寸

编辑

现在我收到这个警告:

警告