如何解决官方iOS应用开发教程中的自动布局问题?

时间:2017-05-06 10:12:18

标签: ios autolayout interface-builder

在官方iOS应用开发教程的Implement Edit and Delete Behavior部分结尾处,提到布局有错误并使用堆栈视图修复这些错误留给读者练习。 为了解决这些问题,我遵循了以下步骤:

  1. 添加水平堆栈视图,其中包含UIImageView和垂直堆栈视图。
  2. 将水平堆栈视图的边缘约束到superview的边缘。
  3. 将标签和评级控制添加到垂直堆栈视图。
  4. 在UIImageView中将内容模式设置为Aspect Fit。
  5. 将UIImageView的CHCR属性设置为全部1000。
  6. Your Meals Scene

    然而,布局仍然不是我喜欢的。例如,我已经在iPhone 5模拟器中启动了应用程序,情况如下:

    Your Meals Scene on iPhone 5

    图像视图不会延伸到单元格顶部和底部(保持纵横比)。此外,当我点击"编辑"时,图像视图缩小而不是评级控制和标签:

    enter image description here

    同样,当我们向左滑动一行时,而不是标签和评级控制收缩,图像视图会从视图中滑出:

    enter image description here

    我希望图像视图完全保留在那里,并且评级控制和标签会根据需要缩小。

    我还尝试用普通的水平堆栈视图替换Rating Control,它包含5个普通按钮。这是结果:

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    这一次,UIImageView涵盖了整个单元格。我曾预料到:

    1. UIImageView的高度等于单元格的高度。
    2. UIImageView的宽度与其高度成正比(因为我在界面生成器中将UIImageView的内容模式设置为Aspect Fit)。
    3. 标签和新评级控制所涵盖的剩余空间。他们应该占用剩余空间,因为我已经将UIImageView的CHCR设置为全部1000。
    4. 更新

      在图像视图中添加“纵横比”约束后的视图:

      enter image description here

      enter image description here

      除了图像视图不是从左边缘开始这一事实外,它已接近完成。为了解决这个问题,我尝试将图像视图的前沿位置设置为superview的前沿位置,但这没有帮助。

      如何实现所需的布局?

1 个答案:

答案 0 :(得分:0)

滑动删除部分正常工作。整个单元格向左滑动而不向左缩小(看看Mail.app,你会看到它的行为方式相同)。

至于您在图像视图中唯一一个在表格处于编辑模式时收缩的部分...

  1. 调低评级视图和标签的抗压性。
  2. 为图像视图添加宽高比约束。
  3. 选择图像视图和内容视图(最容易选择 在大纲视图中的命令键,你截取了)和设置 他们有相同的高度。 这样可以防止图像视图在编辑模式下缩小。如果没有尝试在单元格顶层的水平堆栈视图的各种模式。
相关问题