gpt4 book ai didi

ios - UIScrollView 无法具有正确的 contentSize

转载 作者:行者123 更新时间:2023-11-29 00:33:50 27 4
gpt4 key购买 nike

我的 UIViewController 中有 4 个 UIViews,颜色分别为:黄色、绿色、灰色和蓝色。
我还给出了以下自动布局约束:
黄色 View :Top-8-superview, Leading-8-superview, Trailing-8-superview, height = 120
绿色 View :Top-8-YellowView,Leading-8-superview,width=200,height=100
灰色 View :Top-8-GreenView,Leading-8-superview,Trailing-8-superview,bottom-8-blueView;
BlueView: Bottom-60-superview, trailing-8-superview, width=260, heigth=30
编译运行后是这样的:

enter image description here

至此,没有问题,没有约束投诉,一切正常。

但是,我将4个UIView的父 View 都改成了UIScrollView,然后UI显示错误:只有绿色 View 正确显示,黄色 View 和灰色 View 丢失,蓝色 View 显示了一小部分。 enter image description here

在控制台中我检查了scrollView的contentSize.width是16,这是不正确的,所以我尝试在viewDidLayoutSubviews中更正它:

self.scrollView.contentSize = self.view.bonds.size;
[self.scrollView setNeedsDisplay];
[self.scrollView layoutIfNeeded];

contentSize 变为 (414, 736),这是正确的,但显示仍然与我的第二张附加图像相同。我列出了 View 详细信息:
黄色 View :帧:(8, 28, 0,120)
绿景:帧:(8, 156, 200,120)
GreyView: 框架:(8, 264, 0, 274)
BlueView: 帧:(-252, 646, 260,30)

我观察到的是,如果我给出一个宽度常量, View 的宽度至少大于 0,对于黄色和灰色 View ,因为它们是没有宽度限制的空白 View ,它们将无法显示.

除了给出宽度限制之外,修复它的最佳解决方案是什么?我也想知道为什么黄色和灰色的宽度为零,因为我也给了顶部,前导,尾随,高度限制?

最佳答案

添加 contentView 作为 scrollView 的 subview ,然后将所有 subview 添加为 contentView 的 subview 。 contentView 的约束设置为 width = superview.widthheight >= superview.height 并固定 contentView 的 4 条边> 到 scrollView (前导、顶部、尾随、底部)。更多信息:https://www.natashatherobot.com/ios-autolayout-scrollview/

关于ios - UIScrollView 无法具有正确的 contentSize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41105481/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com