SwiftUI中ScrollView内视图使用.frame修饰符的尺寸计算逻辑及特殊表现疑问
SwiftUI中ScrollView内视图使用.frame修饰符的尺寸计算逻辑及特殊表现疑问
Tl;DR 为什么在ScrollView里的Color.red.frame(maxWidth: 500)视图高度只有1个像素?既不是500像素也不是0像素,这实在让人摸不着头脑!
我一直是这么理解SwiftUI布局定位和尺寸计算逻辑的:每个视图都会被父视图询问它的理想尺寸,视图会返回自己的最大尺寸需求,然后父视图会尽可能给它分配足够的空间。
按照这个逻辑我有两点认知:
Color视图默认会占用父视图能提供的所有可用空间- 当给视图加上
.frame(maxWidth: 500)这类修饰符时,本以为它的宽度会被限制在500像素,高度仍会正常占用可用空间,但实际在ScrollView里它的高度却变成了1像素,这到底是怎么回事?
备注:内容来源于stack exchange,提问作者Andrei Herford
相关产品推荐
相关产品推荐

