我在代码中有一个UICollectionReusableView用于UICollectionView Header Section,如下所示:
var headingLabel: UILabel! override init(frame: CGRect) { super.init(frame: frame) headingLabel = UILabel(frame: CGRectMake(12.0,12.0,frame.width,21.0)) headingLabel.numberOfLines = 1 headingLabel.textAlignment = NSTextAlignment.Center headingLabel.textColor = UIColor.blackColor() self.backgroundColor = UIColor.whiteColor() self.addSubview(headingLabel) }
我只想让标题在显示屏中居中。只要我不旋转设备,这就没问题了。如果我旋转设备,则标签不再位于屏幕中央。
我猜这是非常简单的,我似乎无法找到答案。我的假设是我可以以编程方式添加约束,但我无法解决如何做到这一点。
或者,我认为可能有某种方法可以强制它在布局更改时重做标题,但我也无法正常工作。
任何指向正确方向的人都会非常感激。
非常感谢。
答案 0 :(得分:0)
在重新布局collectionView之前必须使布局无效(这发生在viewDidLayoutSubviews
中),因此您必须在viewWillLayoutSubviews
中使其无效。
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
// Handle rotation
collectionView.collectionViewLayout.invalidateLayout()
}
答案 1 :(得分:0)
[ERROR] Unknown life-cycle phase "specificdata".