Closed shingohu closed 5 years ago
这不是一个BUG。对于垂直线性布局来说当高度或者垂直间距设置为TGWeight类型,也就是设置为百分比时,的概念并不是占用父视图的比例空间,而是对剩余空间中的所有设置为百分比的进行比例分割。 假如一个线性布局的高度是100,里面有三个子视图的高度分别为:
A:20 B:30% C:20%
那么B和C的高度计算时会将这两个相对占比的总和作为分母,来计算实际的比例:
A的真实高度 = 20 B的真实高度 = (100 - 20) 0.3 / (0.3 + 0.2) = 48 C的真实高度 = (100 - 20)0.2 /(0.3+0.2) = 32
-------- 因此当垂直线性布局中只有一个子视图,如论设置任何比例值,分子分母的值都是一样的,结果都是1,所以得到了你出现的全屏。这种逻辑就是这样设置。
如果你想要得到父视图高度的占比值你可以这样写:
l2.tg_height.equal(linearLayout, multiple:0.2)
override func viewDidLoad() { super.viewDidLoad()
// view.addSubview(rootLayout) //
// let homeVC = HomeViewController() // addChildViewController(homeVC, toContainerView: rootLayout.homeView) //
// let tabVC = MainTabViewController() // addChildViewController(tabVC, toContainerView: rootLayout.tabView)
这里 高度不是10% 而是全屏