【问题标题】:making an auto layout of UIimageView and textview inside scrollview for iOS 10.2 in xcode8在 xcode8 中为 iOS 10.2 的滚动视图中的 UIimageView 和 textview 进行自动布局
【发布时间】:2017-03-04 05:40:44
【问题描述】:

我正在 xcode8 中为 iOS 10.2 制作笔记应用程序。注释由文本字段、文本视图和图像视图组成。我在单独的滚动视图中添加 textview 和 imageview(以提供缩放和调整图像的功能)。然后我在 stackview 中添加了两个滚动视图,以确保 imageview 和 textview 在横向模式下并排站立。为此,我为 stackview 的轴属性添加了变体(width=any、height= compact 和 Gamut=any,并将其设置为水平,如屏幕截图右上角所示 to see view hierarchy without any constraints)。 我尝试了很多限制,但每次都无法采用。举个例子,我在内容大小上调整滚动视图的大小(通过设置顶部、底部、前导和尾随约束),堆栈视图调整为主视图。现在,唯一需要调整的是关于堆栈视图的文本视图和图像视图。但是,如果我在堆栈视图中包含文本视图的固定尾随约束,这是棘手的部分;它将在纵向模式下工作。一旦我进入横向模式,该约束将不起作用(与 stackview 距离为 0 的尾随约束),因为边缘将在 imageview 一侧而不是在 stackview 一侧(因为我正在放置图像和文本并排,如上所述),这将使 textview 大于所需,同样适用于 imageview 对堆栈视图的主要约束以及图像视图和 textview 之间的垂直距离约束。我认为问题的根源是我对堆栈视图的轴(为了在横向模式下并排获取文本和图像)但是,这是必要的部分。有人可以解决这个问题吗?你认为还有其他问题吗?我应该选择 Intrinsic Size of scrollviews to placeholder 选项还是让它成为系统默认值?

谢谢。

【问题讨论】:

  • 简化您的问题.. 已经 14 小时了,还没有答案。这是有原因的。

标签: ios xcode8 ios-autolayout


【解决方案1】:

所以我希望我能理解这个问题,并且我会尝试引导你完成我所理解的你希望完成的事情。我先说我刚开始使用 UIStackView 是因为向后兼容。

注意。为了获得带有 AutoLayout 的 ScrollView 的魔力,我几乎总是将它们嵌入到另一个 UIView 中。有理由不这样做,但在这种情况下,您会看到这对 AutoLayout 有多么宝贵。

步骤 1) 拖动 UIStackView 并添加 Top、Bottom、Leading 和 Trailing。现在添加 2 个 UIView 并将 UIStackView 设置为 Fill Equally。它现在看起来像图像(检查您的工作的背景颜色)。

步骤 2) 现在为每个 UIView 添加一个 UIScrollView。在每一个上添加前导、尾随、顶部和底部。

步骤 3) 分别将 UITextView 和 UIImageView 添加到 ScrollViews。现在 Autolayout 对我们很生气 :( 但我们会解决这个问题。

步骤 4) 从 UIImageView 拖动到持有 UIScrollView 的视图(我们添加的第一组视图)。看图

-选择添加等宽的选项。看图片

重复相同的步骤,但添加等高。现在将 Top、Bottom、Leading 和 Trailing 添加到 ScrollView。

第 5 步)使用 UITextView 重复第 4 步

您的最终视图层次结构应如下所示。

现在你可以旋转你的 UIStackView 并做你想做的事。

和水平

并排预览

我确实在顶部的文本字段上添加了一个

享受吧。

【讨论】:

  • 感谢您的帮助。虽然我使用了类似的方法,但我使用堆栈视图嵌入每个项目,然后使用堆栈视图再次对它们进行分组。
  • 另外,我不会将您在最后一条评论中描述的内容与我的回答中的上述内容类似。
  • 是的,我应该给你一个以上的投票,因为你首先理解了这个凌乱的问题。哈哈。我确实给了你一个赞成票,它被记录但没有公开显示,因为我的评分低于 15 分。抱歉:(
  • 我认为不需要排名。我认为您只需单击向上投票箭头下方的复选标记即可。
  • 抱歉,完成了!
猜你喜欢
  • 1970-01-01
  • 2018-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
  • 2013-06-17
  • 1970-01-01
相关资源
最近更新 更多