【问题标题】:Why do my controls get squished inside a scroll view?为什么我的控件在滚动视图中被挤压?
【发布时间】:2019-04-10 14:10:24
【问题描述】:

我正在构建一个 iOS 应用,每次我使用滚动视图并将其他视图和控件放入其中时,都会发生这种情况:

如何防止这种情况发生?我尝试将滚动视图放在 UIView 中,并将 UIView 放在滚动视图中,并将其他控件放在嵌套视图中,但同样的事情仍然发生。有关如何解决此问题的任何想法?

【问题讨论】:

  • 你需要设置宽度限制或写一些文字来调整标签宽度行为

标签: ios xcode uiview uiscrollview


【解决方案1】:

使用自动调整大小功能代替使用约束。控件的大小取决于它们在屏幕上的放置方式以及 Autoresizing 上的设置。

Autoresizing

【讨论】:

    【解决方案2】:

    scrollView 中添加一些东西后,它不知道它的宽度和高度。因此,它无法正确显示其子视图。

    有一些主要的解决方案:

    1. 您需要指定正确的尺寸和垂直和水平距离。

    例如scrollView 将有 1 个标签。然后你应该指定这样的东西: 标签 1:

    leading = 20, trailing = 20, width = 100(这将解决水平尺寸问题)

    top = 20, height = 100, bottom = 20(这将解决垂直尺寸问题)

    当然,标签是自定大小的。所以如果指定文本/字体/行数,就不需要设置固定的宽高。

    1. 您可以添加一些视图(如果您的布局允许的话),它将占据整个屏幕的宽度。在这种情况下,您将leadingtrailing 设置为0,而不是设置固定宽度(在不同的屏幕尺寸上有所不同),您需要在scrollView 内水平居中该视图。

    这将解决水平尺寸问题。

    【讨论】:

    • 我试过了,视图确实遵循约束,但内容仍然没有,它们仍然会变形。如果我设置了宽度和高度约束,它确实会得到它的形状,但问题是它不会根据屏幕大小调整大小。我什至使用 >= 约束。我设法通过不使用约束来保持形状和约束以及自动调整大小(取决于屏幕大小)。我只是按照我认为合适的方式将控件放在屏幕上,并改用自动调整大小功能。
    猜你喜欢
    • 2018-03-10
    • 2020-10-15
    • 2016-07-20
    • 1970-01-01
    • 2015-08-19
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    相关资源
    最近更新 更多