【问题标题】:How to make a scroll view scroll *and* simultaneously satisfy constraints for different size devices如何使滚动视图滚动*和*同时满足不同尺寸设备的约束
【发布时间】:2019-10-02 22:05:24
【问题描述】:

我有一个如下的视图控制器,下面的布局显示在 iPhone XS 上。有了这组约束,我可以在故事板中的不同设备视图之间切换,一切都会调整,约束不会出现警告/错误。

但是,问题在于,在 iPhone 8 和 SE 上,元素的大小太大而无法在屏幕上显示,并且文本视图被压缩并且并非所有文本都可见(要求所有文本都无需使文本本身可滚动即可查看。因此,这就是我将所有内容放入滚动视图的原因。 但问题是,在 iPhone 8/SE 上,滚动视图实际上并没有滚动。 在做了一些研究和从上一个问题之后,解决方案是将 view.height = height(在滚动视图与其子视图之间)的优先级从默认值 1000 设置为 250。

这确实解决了滚动视图不滚动的问题,并且在 iPhone 8 和 SE 上的最终结果符合预期 - 并非所有文本和按钮都在屏幕上可见,但用户可以向下滚动以查看它们. 在 iPhone 8+ 和 XS 上也可以。但是,如果我切换到情节提要中的 XR 或 XS Max 视图,我现在会收到一个约束错误 - 说 Scroll View: Need constrains for Y position or height。

我已经尝试了很多东西,但我无法同时摆脱所有约束错误,同时让滚动视图在较小的屏幕设备上实际滚动。

多年来,这一直让我发疯,感谢您对这里缺少/不正确的任何建议。

【问题讨论】:

  • 有什么方法可以提供一个带有此设置的示例项目?调试起来会更容易

标签: ios xcode


【解决方案1】:

如果你对“视图”设置的内容有适当的限制,你根本不需要给它一个高度限制。

这里就是你所需要的:

注意:给元素起有意义的名称会非常有帮助,这样可以很容易地准确了解哪些约束属于哪个“视图”。

【讨论】:

  • 非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-21
  • 2016-10-27
  • 2017-09-13
  • 1970-01-01
相关资源
最近更新 更多