我的 CollectionView 中有一个 headerView,并根据标签的文本大小以编程方式调整了 headerView 的大小。在旋转到横向时,可重复使用的标题视图不会自动调整大小,但在滚动时它会调整自身大小以提供预期的结果。
下面是我用来调整标题大小的片段。
override func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {
switch kind{
case UICollectionElementKindSectionHeader:
let headerView = collectionView.dequeueReusableSupplementaryViewOfKind(kind, withReuseIdentifier: "HeaderView", forIndexPath: indexPath) as! CollectionViewHeader
var headerString = westBeaches[indexPath.section] as NSString
var newSize: CGSize = headerString.sizeWithAttributes([NSFontAttributeName:headerView.headerText.font])
headerView.frame.size.width = newSize.width + 20
headerView.layer.cornerRadius = 15
headerView.headerText.text = westBeaches[indexPath.section]
headerView.center.x = collectionView.center.x
headerView.alpha = 0.7
return headerView
default:
assert(false, "Unexpected element Kind")
}
}
CollectionViewHeader 是继承 UIcollectionReusableView 的自定义类,包含 headerText 作为 UILabel。当方向改变时,有什么方法可以防止可重用视图恢复到原来的大小?