我在xib中制作了一个自定义UIView
,并加载为:
class func instanceFromNib() -> ExclusiveCollectionView {
return UINib(nibName: "ExclusiveCollectionView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! ExclusiveCollectionView
}
自定义视图还具有一个子视图-UIcollection视图对象。 现在,当我尝试加载包含堆栈视图的父级时。 在父控制器中,viewWillAppear
let customView = ExclusiveCollectionView.instanceFromNib()
myStackView.addArrangedSubview(customView)
自定义视图始终与矩形框一起保留。例如,对于iPhone 5s,xib中的框矩形宽度为320,那么在stackview视图中加载后,iPhone 8 Plus仍为320,而不是414。
iPhone 5S:
iPhone 8 Plus:
我知道这是一个普遍的问题,已经由SO冠军解决了。但是无论如何我都找不到有效的解决方案。我正在使用在iPhone 5S和iPhone 8 Plus中测试过的带有XCODE 9.0.1的Swift 4.1。
// Update:我尝试在更新viewDidLayoutSubview中的框架后进行添加,如许多SO答案中所给出的。但这不起作用。
我为相同的问题创建了一个gist,以使其更加清晰。