3

我有UICollectionView一个自定义的UICollectionViewCell. 我在to中设置了一个特定任务的alpha属性,所有任务都按预期工作。但是,当我将视图旋转为横向时,单元格会自行重置为.UICollectionViewCell0.0falpha1.0

我已经玩过这个,集合视图包含选定单元格和已删除单元格等的状态,但不包含单元格的 alpha 值。

我试图在 上重新设置已更改单元格的 alpha 值didRotateFromInterfaceOrientation:,它会这样做,但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);

    } 
}

有任何想法吗?

4

2 回答 2

5

在集合视图中,alpha 以及其他属性不能通过通常的视图属性可靠地管理,至少这不是预期的。

相反,您应该使用由类通过管理的对象的alpha属性。UICollectionViewLayoutAttributesUICollectionReusableViewapplyLayoutAttributes:


UICollectionReusableView 类参考
UICollectionViewLayoutAttributes 类参考中阅读此内容

于 2013-04-18T20:49:02.107 回答
1

根据 Mundi 的建议,即 UICollectionViewCell alpha 属性不是可靠管理的,我最终向我的自定义 UICollectionViewCell 添加了一个属性以将其设置为可见或隐藏。我只是将单元格的内容(在我的情况下为标签)设置为 0 或 1。

现在,当我旋转设备时,这仍然存在,尽管这似乎是一种解决方法。

于 2013-04-19T17:36:20.930 回答