Closed ShayneYeorg closed 5 years ago
原因是这样的,因为AssignView是从XIB上构建的,而默认的XIB的autoresizingMask的设置是:~UIViewAutoresizingNone 导致当子视图被添加到布局时候后,如果布局视图的尺寸改变的话就会对子视图的尺寸和位置进行重新布局导致的。解决的方法是当将XIB上构建的视图添加到布局视图时将autoresizingMask的值设置为UIViewAutoresizingNone:
let assignView = Bundle.main.loadNibNamed("AssignView", owner: nil, options: nil)!.last as! AssignView
assignView.autoresizingMask = .none
assignView.tg_size(width: .fill, height: 64)
当使用如下代码进行布局后,
linearLayout
的高度为74(这是正确的),assignView
的高度却变成了138(正确应该是64)。大致代码如下: