【问题标题】:Scrollview in Interface Builder with Autolayout with content size dynamically set to screen size?带有自动布局的界面生成器中的滚动视图,内容大小动态设置为屏幕大小?
【发布时间】:2014-08-12 07:31:32
【问题描述】:

我想将滚动视图的内容视图设置为当前屏幕大小,但 AutoLayout 正在做一些时髦的事情。这在代码中是微不足道的......只需创建一个带有作为超级视图边界的框架的滚动视图。然后创建一个带有滚动视图边界的内容视图并填充它并将alwaysBounces... 属性设置为YES。不过,在界面生成器中,这似乎是一种罪恶的事情。

我知道 Autolayout 处理滚动视图的方式完全不同,因为它想根据约束来推断内容大小。我失败的方法是将滚动视图设置为与其超级视图的距离为 0(所有边都连接)。然后,与内容视图(单个 scrollView 子视图)相同 - 附加到所有超级视图边缘。然后预编译器抱怨不知道内容大小,所以我在占位符处设置了宽度和高度约束,以便在构建时删除。但结果是 (CGRect){0,0,0,0} contentView。 superview 的后沿和底部的 0 空间被完全忽略。

那么如何根据屏幕大小制作具有动态内容大小的滚动视图?

如果你能解释你将如何做同样的事情,但内容大小是屏幕宽度的 2 倍,则可以获得奖励积分。

【问题讨论】:

    标签: xcode cocoa-touch uiscrollview interface-builder autolayout


    【解决方案1】:

    您可以尝试将内容视图的宽度限制为等于滚动视图的宽度(对于您的额外问题:乘数为 2)。高度也一样。

    不确定拥有内容始终与滚动视图大小相同的滚动视图有什么意义。根据定义,它不会滚动,对吧?

    【讨论】:

    • 感谢您的回复。没有alwaysScrollsVertical/horizontal 不,它不会滚动。但是这些属性允许内容滚动而不管大小。效果是用户可以在按住时拉动的视图,但是当用户释放长按手势时会橡皮筋回到原来的坐标(也可以通过 UIKit 动态实现,但这可以完成工作。我也想要在情节提要中配置自定义页面视图控制器-因此是 2x 屏幕尺寸问题)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多