我有UICollectionView
个自定义UICollectionViewCell
。我将alpha
中的UICollectionViewCell
属性设置为0.0f
以执行特定任务,该任务均按预期工作。但是,当我将视图旋转到横向时,单元格的alpha
会将自身重置为1.0
。
我玩过这个并且集合视图保存了所选单元格和删除单元格等的状态,但不包含单元格的alpha值。
我尝试在didRotateFromInterfaceOrientation:
上重新设置已更改单元格的Alpha值,然后在调用完成后将其更改回1.0
。
我试图找出UICollectionViewCell
的alpha值在旋转后重置的位置。
如果我运行以下代码,我会为单元格返回所需的alpha值,但在此之后的某个时刻,它们都会变回1.0
:
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
//array containing IndexPaths for cells with 0.0f alpha value
for (NSIndexPath *path in self.selectedlettersArray) {
LetterCellView* lsv = (LetterCellView*) [self.collectionView cellForItemAtIndexPath:path];
lsv.alpha = 0.0f;
}
for (LetterCellView *lsv in self.collectionView.visibleCells) {
NSLog(@"After Cell Alpha is : %f", lsv.alpha);
}
}
有什么想法吗?
答案 0 :(得分:5)
在集合视图中,alpha - 以及其他属性 - 无法通过常见的视图属性进行可靠管理,至少这不是预期的。
相反,您应该使用由alpha
类通过UICollectionViewLayoutAttributes
管理的UICollectionReusableView
对象的applyLayoutAttributes:
属性。
在中文阅读 UICollectionReusableView Class Reference和 UICollectionViewLayoutAttributes Class Reference
答案 1 :(得分:1)
根据Mundi的建议,UICollectionViewCell alpha属性不可靠管理,我最终添加了一个属性到我的自定义UICollectionViewCell,将其设置为可见或隐藏。我只是将单元格的内容(在我的情况下是标签)alpha设置为0或1。
现在,当我旋转设备时,它会粘在一起,虽然这似乎是一种解决方法。