ios - UICollectionView 水平滚动,数据从左向右流动

标签 ios ios7 uicollectionview uicollectionviewlayout

我在这里看到了一个有点类似的问题:Reorder cells of UICollectionView .但是,解决方案涉及重写 UICollectionViewFlowLayout 以重新排列单元格。但就我而言,我不想对单元格重新排序,而只是相应地转换数据源。

我正在创建一个水平滚动的 UICollectionView。默认情况下,项目从上到下排序:

cell1  cell4  cell7  cell10
cell2  cell5  cell8  cell11
cell3  cell6  cell9  cell12

我对细胞的物理流动没意见。但是,我希望我的数据从左向右流动:

data1  data2  data3  data4 
data5  data6  data7  data8 
data9  data10 data11 data12

简单地使用 indexPath.item 来确定要使用的数据是行不通的。我必须以某种方式“转换”索引。例如,要显示 cell2 的内容,我需要使用 data5,而不是 data2。

类似的东西:

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {

   NSInteger index = //Use proper index based on transformed indexPath.item, instead of just indexPath.item
   NSDate *cellDate = [self.dateArray objectAtIndex:index]
   ...
}

关于如何进行这种转变有什么想法吗?

最佳答案

弄清楚怎么做:

 -(NSDate*)cellDateBasedOnIndexPath:(NSIndexPath*)indexPath {
     NSInteger row = indexPath.item % NUMBER_OF_ROWS + 1;
     NSInteger column = indexPath.item/NUMBER_OF_ROWS + 1;
     NSInteger itemIndex = row * NUMBER_OF_COLUMNS - (NUMBER_OF_COLUMNS - column) - 1;

     //Use itemIndex to index through the data source...

 }

关于ios - UICollectionView 水平滚动,数据从左向右流动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23895282/

相关文章:

iOS:调试简单的 UI 滞后(我猜是基于 CoreData)

ios - 如何在没有 View Controller 的情况下将选项卡栏项添加到 UITabBarController?

ios - 将 RGB 图像转换为灰度并将灰度转换为 RGB 图像?

ios - 在 XCode 5 中使用多个 Assets 目录的问题

ios - Android 喜欢在 iOS 上使用选项卡查看寻呼机

ios - 从 collectionView 呈现一个 viewController

ios - 错误产生转换为 swift 3.0

ios - (kal) 日历/tableview View 层次结构在选项卡栏中损坏

javascript - Titanium mobile,使用自定义循环获取数组值的最佳方式

ios - '尝试添加nil节点',原因:'尝试将nil节点添加到父节点:<SKScene>名称:'(null)'