问题标签 [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 回答
4336 浏览

ios - 具有自动布局和附件视图的自定义 UITableViewCell

我有一个使用自动布局的自定义表格视图单元格,并有一个披露指示器作为附件视图。首次显示时屏幕上单元格的单元格大小完全错误:

如您所见,该单元占用了大约 1.5 个屏幕的空间:

在此处输入图像描述

但是,如果我旋转设备并向后旋转,它看起来很好:

在此处输入图像描述

正如你在这里看到的,我没有做任何复杂的事情:

在此处输入图像描述

我有一个非常不理想的解决方法:

但这显然会在您第一次看到屏幕时导致“闪光”。在更复杂的情况下,闪光更为明显。

我有另一种解决方法,但这会导致自动布局异常:

例外:

在此处输入图像描述

至少这种方法不会让我 UI 闪烁。

如果我删除附件视图,它实际上工作得很好。

更新:我已经向 github 添加了一个示例项目: https ://github.com/fwaddle/TableCellAccessoryTest

更新#2:原来围绕这个错误的另一项工作是在代码中布局单元格。我只是尝试在代码中做同样的事情,它没有抛出警告并且工作正常。看起来像一个 IB 错误。

任何想法如何解决这个问题?谢谢。

0 投票
1 回答
3269 浏览

ios - iOS 自动布局:如何在 Xcode 故事板中为 iPad 横向和 iPad 纵向设计不同的布局?

我是 iOS 中大小类和自动布局的新手。我正在通过一个小型应用程序进行相同的练习。以下是我试图通过自动布局和尺寸等级实现的目标。下面分别是 iPad 纵向和 iPad 横向的具体截图。

iPad人像界面 iPad横屏界面

iPad Portrait :: 这里有 3 个子视图,即灰色视图、绿色视图、粉红色视图。

灰色视图-超级视图的3/4高度,超级视图的2/3宽度绿色视图-超级视图的3/4高度,超级视图的1/3宽度粉红色视图-超级视图的1/4高度,宽度相同超级视图

iPad 横向:: 与 iPad 纵向相同的 3 个子视图,但位置略有不同。

灰色视图-与超级视图相同的高度,超级视图的 2/4 宽度 绿色视图-与超级视图相同的高度,超级视图的 1/4 宽度 粉红色视图-与超级视图相同的高度,超级视图的 1/4 宽度

只要有两个子视图,我就可以使用自动布局进行管理。但是,我无法实现上述目标。另外,我想在 iPad 纵向和横向上有不同的布局设计。

0 投票
1 回答
298 浏览

ios - 根据设备垂直尺寸自动设置 UIView 垂直尺寸(包括 Auto Layout 变化)

我一直在谷歌上搜索,似乎无法确定我的问题的答案。

我正在编写一个应用程序,并且希望子 UIView 的垂直空间能够保持设备的高度或父设备的旋转,无论方向如何,并且无需提前对值进行硬编码。

我的布局结构是:

具体来说,我希望内容视图的垂直空间最初设置为当前运行的设备/方向的本机高度,并且当设备旋转时,我希望垂直空间更改为新的垂直高度。UIScrollView 将仅用于水平平移。

我将使用 Quartz 在视图中绘制。我是否通过设置初始高度intrinsicContentSize?如果是这样,我如何查询父视图?

我试过self.superview在内容视图中使用,但这不起作用。如何检测发生了变化,发生变化后,如何获取新的 Y 分辨率然后应用它?如果不需要,我也不想禁用自动布局。

如果我没有说清楚,这是我想要的视觉效果: https ://www.evernote.com/l/AAI3VFkKBARPlYPsoURJOwAmIiGielF5p-w

0 投票
2 回答
534 浏览

ios - 多行 UILabel 有时会完全显示,有时会被切断

自 iOS 8 发布以来,我在评论显示视图中遇到了一个奇怪的问题,我的长多行标题并不总是在屏幕上显示完整标题。让这个问题更令人沮丧的是显示不一致,有时会显示完整的标题,有时会像这样将其截断:

截取标题截图 完全显示的标题截图

在我的 ViewController 中,该cellForRowAtIndexPath方法如下所示:

我的视图代码中的相关部分init如下所示:

这是约束设置(使用砌体):

在过去两个月左右的时间里,我一直在尝试解决这个问题,断断续续,但到目前为止还没有任何运气。如果有人遇到过类似的问题,请发表您的经验。

0 投票
1 回答
840 浏览

ios - 带有边缘插入的 UIButton 不遵循内容压缩阻力属性

内容拥抱优先级 =250

内容抗压优先级=750

宽度 =70 优先级 =500(对于普通文本)

左右边缘插图 =3

这是左右边缘插入 = 3 时的样子

如果我设置左右边缘 inset = 0 和其余的东西

这是左右边缘插入 = 0 时的样子

0 投票
2 回答
903 浏览

ios - 如何为所有 iphone 设备在同一行中设置多个 UIlabel

我正在为 4 个 UILabel 设置约束,但它在 iphone 5s 中无法正常工作,并且在 6 和 6 plus 中正常显示。如何设置适当的约束?

在此处输入图像描述

它在 iphone 5s 的右侧。

在此处输入图像描述

第一个标签,我设置了 x 位置,然后设置了标签之间的空间。然后我从尾随空格设置了第四个标签 <=。但没有得到正确的结果。

0 投票
2 回答
516 浏览

ios - 在iOS中的容器视图内动画图像视图?

我正在尝试为容器视图中的图像视图设置动画。容器视图是方形的并且对齐屏幕的中心。我的容器内确实有一个图像视图。我的图像视图的位置如下图所示。(超级视图是我的容器视图)

在此处输入图像描述

我想为容器内的图像视图设置动画,例如从顶部 0 到底部 0,所以我尝试从顶部 0 到顶部最大值(即容器视图的高度)设置动画,但它没有按预期工作。我的预期输出类似于图像视图应该在容器视图内从上到下连续动画并反转。

我尝试过的动画方法是

编辑:这是当前输出的 GIF。它没有移动到全高度 动图

0 投票
3 回答
571 浏览

ios - 自动布局几个等间距和固定宽度的按钮

我正在尝试使用 AutoLayout 约束来自动重新定位按钮框架。

场景:有 5 个 UIButton,它们需要同样对齐。

  1. 预期和实现(通过谷歌驱动器中的图像显示):图像
  2. 我用过的:

    /li>

我已共享项目以供参考:项目

请让我知道水平间距的问题出在哪里。

谢谢

0 投票
2 回答
952 浏览

ios - 更改设备方向时的自动布局约束问题

在此处输入图像描述

我在自动布局中遇到问题。我想要两个按钮,如屏幕截图所示。我希望它们也能在横向模式下正确显示。

1) 按钮应水平居中对齐。

2) 按钮的宽度和高度应该相等。

3) 按钮在两个方向(横向和纵向)上应与超级视图的中心垂直距离相等

我对条件 3 有疑问。我希望 UI 在所有尺寸的设备上在两个方向上都是统一的。

是否可以使用自动布局来实现这一点,或者我需要更新方向变化的约束?

我正在考虑在超级视图的中心添加另一个视图,并对该视图应用以下约束以实现所需的 UI

1)添加另一个大小的透明视图(superview的宽度,1)

2) 为新添加的视图添加水平和垂直居中对齐约束。

3) 为新添加的视图添加所有必需的约束,如宽度、高度和 x 位置。

现在只有这样的两个按钮

4) 将底部空间约束添加到具有新添加视图的按钮 1 5) 将顶部空间约束添加到具有新添加视图的按钮 2

这样这在所有方向和所有设备尺寸上都将保持不变。

这种方法不好,因为我们需要添加额外的视图。请建议是否有人有更好的方法/想法

0 投票
2 回答
209 浏览

ios - 从超级视图中删除的自动布局不会更新

我试图通过 removeFromSuperview 删除约束来使 UILabel 增长。文本字段 1 被删除。但它仍然没有让 UILabel 变宽。我已在此处附上示例代码以供参考。它完全在故事板上。

这是我的 ViewDidLoad 方法:

我不想拥有约束的 IBOutlet 并在代码上更新它。我试图把它放在故事板上一次。