UICollectionView RTL方向

时间:2013-12-24 06:48:31

标签: ios objective-c xcode uicollectionview

xcode中的UIViewCollection有两个方向状态: 1.水平 2.垂直

我正在尝试使用垂直状态,但要使其从右到左显示单元格。默认当然是从左到右。

如果我不清楚我将使用一个例子: 假设我有一个连续3个单元格的Vertical collectionView,目前它只显示一行。当我添加另一个单元格(第4个单元格)时,我希望它出现在collectionView的右下角。目前它出现在左下角。

任何帮助都会很棒,

由于

1 个答案:

答案 0 :(得分:0)

发现它!

我在其x pivot上镜像了集合视图,但我还需要镜像单元格。由于UICollectionView没有“willDisplayCell”或任何类似的东西,这有点蠢。

我就这样做了:

第一步 - 在viewDidLoad

self.collectionView.layer.transform = CATransform3DConcat(self.collectionView.layer.transform, CATransform3DMakeRotation(M_PI,0.0,1.0,0.0));

第二步 - 在cellForItemAtIndexPath函数中

[self performSelector:@selector(flipCell:) withObject:cell afterDelay:0.0];

第三步 - 创建新方法

-(void)flipCell:(YESMyZoneCollectionViewCell *)cell{
    cell.layer.transform = CATransform3DConcat(cell.layer.transform, CATransform3DMakeRotation(M_PI,0.0,1.0,0.0));
}
祝你好运......

---大编辑---

我上面给出的解决方案并不像我想的那样好,因为滚动的加载时间很长。

所以我做了类似的事情而没有“延迟执行”部分。

我用过这个:

  -(void)scrollViewDidScroll:(UIScrollView *)scrollView {
      NSMutableArray *visibleCells = [[NSMutableArray alloc] initWithArray:[self.collectionView visibleCells]];

      for (int i = 0; i < [visibleCells count]; i++) {
          customCellObject *cell = [visibleCells objectAtIndex:i];
          if (cell.isFlipped == NO) {
              [self flipCell:cell];
          }
      }

  }

我还必须在cellForItemAtIndexPath中使isFlipped属性为NO,因为它们在重用时不会被翻转...