为什么在UI中忽略UIScrollView contentSize但在viewDidAppear方法中进行设置时可以工作?

伦敦人

我已经为此苦苦挣扎了一段时间,以为自己想让我的scrollView成为一个插座,并尝试在viewDidLoad中设置内容大小,但这没有用。

然后,我尝试了viewWillAppear,再也没有运气了。毫无希望,我想我不妨尝试一下viewDidAppear,它确实有效。

在此之前,scrollView只会稍微滚动,并且不会考虑我在IB中的contentSize。

IB中是否有设置可以阻止这种情况的发生?

抢马约夫

我假设您为情节提要板(或xib)启用了自动布局。

自动布局contentSize基于滚动视图及其子视图之间的约束来设置滚动视图的。我相信这是在滚动视图的layoutSubviews方法中发生的

方法按以下顺序调用:

view controller's viewDidLoad
view controller's viewWillAppear:
view controller's viewWillLayoutSubviews
each view's layoutSubviews, from the root view down
view controller's viewDidLayoutSubviews
view controller's viewDidAppear:

当您尝试设置contentSizeinviewDidLoad和in时viewWillAppear:,该设置无效,因为滚动视图layoutSubviews稍后将其覆盖。将其设置viewDidAppear:为时,将覆盖滚动视图的功能。

解决此问题的正确方法是在滚动视图及其子视图之间创建约束。如果要使滚动视图垂直滚动,则需要在其顶部边缘和子级之间以及在其底部边缘和子级之间有约束,并且在子级之间需要有足够的约束来确定整体内容的高度。

您可以在技术说明TN2154:UIScrollView和Autolayout中找到Apple的官方文档

您可能还会发现此视频很有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当您可以在.js文件中进行设置时,为什么还要使用.env文件?

来自分类Dev

为什么EntityFramework代码首先忽略代码中设置的键值

来自分类Dev

为什么RemoteFileTemplate忽略setFileNameExpression中设置的值?

来自分类Dev

为什么在VBS中可以默默忽略WScript.Shell?

来自分类Dev

为什么忽略renderAllHiddenFieldsAtTopOfForm配置设置?

来自分类Dev

为什么我的*超时设置会被忽略?

来自分类Dev

为什么node.js会忽略package.json文件中的“类型”设置?

来自分类Dev

为什么在Ubuntu 17.10上忽略了在/ etc / network / interfaces中设置的网络配置?

来自分类Dev

鱼为什么会似乎忽略函数中的第二个“设置”命令?

来自分类Dev

为什么这里忽略了原型方法?

来自分类Dev

为什么这里忽略了原型方法?

来自分类Dev

iOS在砌体中设置uiscrollview的contentsize

来自分类Dev

为什么_不能用来表示方法重写中未使用/忽略的参数?

来自分类Dev

为什么UITableView可以始终滚动但UIScrollView不能滚动

来自分类Dev

当状态为非数字时,为什么USArrests数据可以在R中进行PCA分析?

来自分类Dev

为什么在属性中未实现__set__方法时,instance.attribute = value可以工作?

来自分类Dev

当我从C中的文件中读取数字时,为什么会收到警告,忽略“ fscanf”的返回值?

来自分类Dev

以编程方式将UIScrollView添加到UIView不能在viewDidLoad中工作,但可以在viewDidAppear中工作吗?

来自分类Dev

为什么用花括号进行复制初始化会忽略C ++中的复制/移动构造?

来自分类Dev

为什么重写URL时,美元符号$会忽略apache httpd.conf中的查询字符串

来自分类Dev

当我在Bash函数中使用getopts时,为什么它在第二个调用中忽略参数?

来自分类Dev

在Firefox中,为什么在运行NoScript或uBlock Origin时以这种方式呈现此页面(忽略noscript标记的内容)?

来自分类Dev

尽管它可以在MinGW中进行编译,但为什么它不能在VS Express 2013中进行编译?

来自分类Dev

为什么忽略在库上设置的“ developmentMode”标志?

来自分类Dev

为什么我的默认浏览器设置会被忽略?

来自分类Dev

为什么文件上传会忽略语言设置?

来自分类Dev

为什么sudo curl会忽略代理设置?

来自分类Dev

为什么声音设置忽略输出设备?

来自分类Dev

为什么此代码会忽略等待并继续进行?

Related 相关文章

  1. 1

    当您可以在.js文件中进行设置时,为什么还要使用.env文件?

  2. 2

    为什么EntityFramework代码首先忽略代码中设置的键值

  3. 3

    为什么RemoteFileTemplate忽略setFileNameExpression中设置的值?

  4. 4

    为什么在VBS中可以默默忽略WScript.Shell?

  5. 5

    为什么忽略renderAllHiddenFieldsAtTopOfForm配置设置?

  6. 6

    为什么我的*超时设置会被忽略?

  7. 7

    为什么node.js会忽略package.json文件中的“类型”设置?

  8. 8

    为什么在Ubuntu 17.10上忽略了在/ etc / network / interfaces中设置的网络配置?

  9. 9

    鱼为什么会似乎忽略函数中的第二个“设置”命令?

  10. 10

    为什么这里忽略了原型方法?

  11. 11

    为什么这里忽略了原型方法?

  12. 12

    iOS在砌体中设置uiscrollview的contentsize

  13. 13

    为什么_不能用来表示方法重写中未使用/忽略的参数?

  14. 14

    为什么UITableView可以始终滚动但UIScrollView不能滚动

  15. 15

    当状态为非数字时,为什么USArrests数据可以在R中进行PCA分析?

  16. 16

    为什么在属性中未实现__set__方法时,instance.attribute = value可以工作?

  17. 17

    当我从C中的文件中读取数字时,为什么会收到警告,忽略“ fscanf”的返回值?

  18. 18

    以编程方式将UIScrollView添加到UIView不能在viewDidLoad中工作,但可以在viewDidAppear中工作吗?

  19. 19

    为什么用花括号进行复制初始化会忽略C ++中的复制/移动构造?

  20. 20

    为什么重写URL时,美元符号$会忽略apache httpd.conf中的查询字符串

  21. 21

    当我在Bash函数中使用getopts时,为什么它在第二个调用中忽略参数?

  22. 22

    在Firefox中,为什么在运行NoScript或uBlock Origin时以这种方式呈现此页面(忽略noscript标记的内容)?

  23. 23

    尽管它可以在MinGW中进行编译,但为什么它不能在VS Express 2013中进行编译?

  24. 24

    为什么忽略在库上设置的“ developmentMode”标志?

  25. 25

    为什么我的默认浏览器设置会被忽略?

  26. 26

    为什么文件上传会忽略语言设置?

  27. 27

    为什么sudo curl会忽略代理设置?

  28. 28

    为什么声音设置忽略输出设备?

  29. 29

    为什么此代码会忽略等待并继续进行?

热门标签

归档