• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - super View 边界的最小 x 值?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 16:53:02 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

这个表达式“superview 边界的最小 x 值”在 Apple Documentation 中是什么意思?关于 UIScrollView 中的自动布局?

...some notes regarding Auto Layout support for UIScrollView:

  • In general, Auto Layout considers the top, left, bottom, and right edges of a view to be the visible edges. That is, if you pin a view to the left edge of its superview, you’re really pinning it to the minimum x-value of the superview’s bounds. Changing the bounds origin of the superview does not change the position of the view.

  • The UIScrollView class scrolls its content by changing the origin of its bounds. To make this work with Auto Layout, the top, left, bottom, and right edges within a scroll view now mean the edges of its content view.

1) 据我所知,默认情况下 View 的 bounds 是 (0, 0, width, height)。所以 x 是 0

2) 一个 View 怎么可能有 更多 x 值以使其最小化?



Best Answer-推荐答案


任何 View 的自动布局约束通常与 View 的 可见 边界有关,但是当涉及到 UIScrollView 时,自动布局约束与 ScrollView 的 contentView 相关。
显然,因为 scrollView 是,嗯...应该滚动。


假设 scrollViewcontentSize 类似于:

myScrollView.frame = CGRectMake(0, 0, 100, 100);
myScrollView.contentSize = CGSizeMake(1000, 1000);

现在...
比如说,在这个 scrollView 中有一个 subView,类似于:

UILabel *lblTest = [UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
[lblTest setText"Where am I?"];
[myScrollView addSubView:lblTest];

滚动前:

  • myScrollView.contentOffset.y 将是 0
  • myScrollView.bounds.y 将是 0
  • myScrollView.frame.origin.y 将是 0
  • lblTest.frame.origin.y 将为 0(并且可见)

滚动后(到底部):

  • myScrollView.contentOffset.y 将更改为 900
  • myScrollView.bounds.y900
  • myScrollView.frame.origin.y仍然0
  • lblTest.frame.origin.y 将是 -900(不再可见)

这就是 Apple 文档的含义:

The UIScrollView class scrolls its content by changing the origin of its bounds.

现在...
如果自动布局与 UIScrollView 的可见边界有关,那么无论您滚动多少,UILabel 都不会向上滚动。
但是……
由于 UIScrollView 中的 Autolayout 与 scrollView 的 contentSize 相关,因此 Autolayout 约束在其中与滚动功能相关。

所以...
当您在 scrollView 中为 subViews 使用 Autolayout 时,它将与 scrollView 的实际大小而不是可见大小有关。

关于ios - super View 边界的最小 x 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20298678/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap