通过故事板使用自动布局创建拉伸 header
Create stretch header using autolayout via storyboard
问题
您好,我遇到过以下问题。我正在创建 header 由故事板中的三个块组成。我正在尝试使用自动布局使其伸展以适应所有设备。
我有三张图片:
- 左角图像(左边框为圆形)
- 中心图像(只是一条线)
- 右角图像(有圆形右边框)
右图角示例:
我希望这三张图片居中一行。
结果应如下所示:
第一个解决方案
我创建了以下约束:
对于左侧块:
- 宽度 = 152
- 身高=50
- 通往superview
- 顶部到超级视图
左图约束:
中间块:
- 身高=50
- 向左拖尾图像 = 0
- 通往右图 = 0
- 顶部到超级视图
中间图像限制:
右图:
- 宽度 = 152
- 身高=50
- 尾随到超级视图
- 顶部到超级视图
右图限制:
当我 运行 我的应用程序在模拟器上运行时,一切正常,我在所有设备上都看到了很好的结果,但是如果我使用这个约束,我在故事板和控制台中收到了很多警告:Unable to simultaneously satisfy constraints.
因为这个
实际上在控制台中出现警告
- Trailing to left image equal to 0
- Leading to right image equal to 0
第二种解决方案
我还尝试对中间的图片进行以下约束:
- 删除左图的尾随约束
- 向父视图添加等于右图宽度的前导约束
但此解决方案会产生更多警告
问题
有没有解决方案如何通过故事板创建这样的 header 而不是将宽度作为常量并针对每个屏幕宽度更新它?
所以你需要你写的所有约束,但你也需要添加约束,说明所有这三个图像具有相同的宽度。
例如,告诉第一个与第二个相同,第二个与第三个相同。并且您还需要删除宽度限制。
出现此类错误的原因是您设置了两个项目宽度 = 152*2 = 304。如果此值大于屏幕宽度,您将收到警告。
中间的约束是错误的。它们应该是:
- middle.leading = left.trailing
- middle.trailing = right.leading
问题
您好,我遇到过以下问题。我正在创建 header 由故事板中的三个块组成。我正在尝试使用自动布局使其伸展以适应所有设备。 我有三张图片:
- 左角图像(左边框为圆形)
- 中心图像(只是一条线)
- 右角图像(有圆形右边框)
右图角示例:
我希望这三张图片居中一行。
结果应如下所示:
第一个解决方案
我创建了以下约束: 对于左侧块:
- 宽度 = 152
- 身高=50
- 通往superview
- 顶部到超级视图
左图约束:
中间块:
- 身高=50
- 向左拖尾图像 = 0
- 通往右图 = 0
- 顶部到超级视图
中间图像限制:
右图:
- 宽度 = 152
- 身高=50
- 尾随到超级视图
- 顶部到超级视图
右图限制:
当我 运行 我的应用程序在模拟器上运行时,一切正常,我在所有设备上都看到了很好的结果,但是如果我使用这个约束,我在故事板和控制台中收到了很多警告:Unable to simultaneously satisfy constraints.
因为这个
实际上在控制台中出现警告
- Trailing to left image equal to 0
- Leading to right image equal to 0
第二种解决方案
我还尝试对中间的图片进行以下约束:
- 删除左图的尾随约束
- 向父视图添加等于右图宽度的前导约束
但此解决方案会产生更多警告
问题
有没有解决方案如何通过故事板创建这样的 header 而不是将宽度作为常量并针对每个屏幕宽度更新它?
所以你需要你写的所有约束,但你也需要添加约束,说明所有这三个图像具有相同的宽度。 例如,告诉第一个与第二个相同,第二个与第三个相同。并且您还需要删除宽度限制。
出现此类错误的原因是您设置了两个项目宽度 = 152*2 = 304。如果此值大于屏幕宽度,您将收到警告。
中间的约束是错误的。它们应该是:
- middle.leading = left.trailing
- middle.trailing = right.leading